From: Han-Wen Nienhuys Date: Mon, 18 Oct 1999 12:45:06 +0000 (+0200) Subject: release: 1.2.15 X-Git-Tag: release/1.2.15 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=8002fa018c81f70585c25232247c6dcba7f5cba0;p=lilypond.git release: 1.2.15 --- diff --git a/AIMS b/AIMS deleted file mode 100644 index ae5d5a9658..0000000000 --- a/AIMS +++ /dev/null @@ -1,92 +0,0 @@ -[From a posting in rec.music.classical.guitar] - -I started coding on Lilypond because I am fascinated by music and by -typography. I have never used any egngraving software, and do not -feel the need to investigate other programs, for the simple reason -that I have no need of typesetting music. In fact, I almost never use -Lilypond. I believe that the largest thing I ever entered was Bach's -WTK-I fugue 2, two pages of piano music. I entered it about 1.5 years -ago. - -I am fascinated by this complicated problem, typesetting music with a -computer. And that is why I started writing Lilypond: purely for the -hack value, for the fun of coding. To me, music notation is like a -giant puzzle. I have been coding on Lilypond and studying music -notation in my spare time for the past three years. Since this is my -hobby, strictly spoken I have no obligations concerning Lily, neither -moral, nor legal. Of course, I am open to pleas and requests and -often do respond to them, but I have the choice to ignore them, and -occasionally I do. - -Lilypond tries to typeset music *automatically*. We (*) try to put as -much of our knowledge of music typography into the program as -possible, and have as little typographical information in the input as -possible. Basically, you ought to be able to produce nicely printed -scores with Lilypond without knowing anything about engraving. - - footnote (*): We = me and Jan Nieuwenhuizen, who wrote about - 30% of the code, and provided most of the examples.) - -A second important issue is that Lilypond is free. Not only in the -sense that you can download Lilypond at no charge, but it is also free -as in "free speech". User are free to modify the program to suit -their needs, and redistribute or sell the program. Moreover, since -the program can be downloaded at no cost, I don't gain anything if it -gets more users. And here I mean "use" as opposed to "use and -enhance" or "use and give helpful comments". - -We have not made a program for professionals, and as a result, hackers -have begun to use it. Some of them have sent me modifications that -improve the software. This is good for us, because it helps us solve -our puzzle more quickly. We would have made the program useful for -professionals like you, presumably they would start using it, be glad -they didn't have to pay, and ignore me. That would not help me solve -my puzzle; I don't gain anything. - -The system has reached a point that it is useful for quite a lot of -people (we get about 200 downloads per month from the main FTP site), -and a lot of my users have thanked me for rescuing them from tedious -typesetting work using Finale, Encore and what-have-you-more. I have -a user in Russia who tries make a living by typesetting a 260-page -book on harmonic-theory using Lilypond. I have a user that can -typeset his own 45 page orchestral score. Laymen have called our -printout of the Bach Cello Suite 2 of "professional quality". - -This program is now useful to more people than a program solely aimed -at professional use. - -Obviously, we're not finished yet, since the program still contains -quite a lot bugs. We know the examples on the website contain lots of -errors. Tweaking the input to fix up and hide the errors would cost -us a lot of time. Time that is better spent improving the program -itself. So, we don't hide the errors. - -Most of the errors that are shown on the website are not caused by our -lack of knowledge, but rather by a lack of time and the sheer -complexity of this big puzzle we're solving. - -In the end, we also want a system that is fully tweakable, so you can -also produce professional quality typesetting. But being -straightforward to use for non-professionals is more important now. - -Finally, I would like to stress that my goals while programming on -LilyPond are separate from my beliefs of what should be done with the -program. I can not control what the program is used for, nor do I want -to. People can typeset lullabies for their baby daughters or racist -warsongs to help fascist leaders. - -A fortiori, I can not control what copyright users place on their -input and output. If you want to do commercial music editing (with -LilyPond) you can publish scores on paper and keep the input and -output to your self. You can publish the score online, and keep the -input to yourself. You can put the input online as well, while -forbidding modifications. You can publish the input and allow -modifications. - -This is all up to the user of the software, not to me. - - -Han-Wen Nienhuys, - -April 11, 1999 - diff --git a/ANNOUNCE-0.1 b/ANNOUNCE-0.1 deleted file mode 100644 index 8ed22c92be..0000000000 --- a/ANNOUNCE-0.1 +++ /dev/null @@ -1,165 +0,0 @@ -Keywords: midi notation music typesetting gnu -Subject: LilyPond 0.1 released - The GNU Project music typesetter - - BORN - - August 1, 1997 - - Lily - - (GNU LilyPond 0.1) - - daughter to Jan 'Janneke' Nieuwenhuizen and Han-Wen 'Wendy' Nienhuys - -Lily is a healthy, bouncing baby weighing 345 kilobytes - -Visiting hours: 24 hours a day at - - ftp://pcnov095.win.tue.nl/pub/lilypond/lilypond-0.1.0.tar.gz (Europe) - ftp://alpha.gnu.ai.mit.edu/gnu/lilypond-0.1.0.tar.gz (US) - -You can see some babyfood, diapers and pictures at - - http://www.stack.nl/~hanwen/lilypond/index.html - -You can send your congratulations to Janneke (janneke@gnu.org) and -Wendy (hanwen@stack.nl) - - -GNU LilyPond - The GNU Project Music Typesetter - - - -``WHAT IS GNU LilyPond?'' - -Well Mike, GNU LilyPond is a program which converts music definition -files into visual or auditive output: it can typeset formatted sheet -music to a TeX file and (mechanical) performances to MIDI files. - - -We have been working very hard on this system for the past year, and -we finally think that it is ready to be used and hacked at by a larger -public than us. - - -WHY ? - -We want to create tools to produce production quality scores and parts -of public domain music. - - -BUT .. - -We haven't yet reached that goal: - -* The quality of the output isn't good enough yet due to some -unsophisticated algorithms - -* Some features haven't been implemented, due to lack of time; most of -them can be done quite simply - -This is why we don't consider this software stable yet. It generally -does what it is supposed to, but we reserve the right to make -(incompatible) changes to the input format. We consider it -of BETA quality. - - -WE WANT YOU! - -You can become a user, but we'd really appreciate it if you would start -hacking at Lily, and help us advance our project more quickly. - - -``YES, IT IS FANTASTIC! WHAT DO I NEED?'' - -For compilation you need - - Unix. (windows32 is known to work, too) - GNU C++ v2.7 or better, with libg++ installed. - GNU make. - Flex (2.5.1 or better). - Bison. (1.25 or better) - -For running you need - - TeX - MusiXTeX fonts - -The MusiXTeX fonts are part of the MusiXTeX package version T.73, -available at any CTAN mirror, or http://www.gmd.de/Misc/Music/ - - -``WHAT CAN LILYPOND DO?'' - -ASCII script input (mudela), with identifiers (for music reuse), -customizable notenames. - -MIDI output lets you check if you have entered the correct notes. -MIDI to Mudela conversion through the mi2mu program. - -Multiple staffs in one score. Each staff can have a different meters. -Multiple voices within one staff (up to four handled graciously); -beams optionally shared between voices. Multiple scores within one -input file. Each score is output to a different file. - -Beams, slurs, chords, super/subscripts (accents and text), -general n-plet (triplet, quadruplets, etc.), lyrics, transposition, -dynamics (both absolute and hairpin style), clef changes, meter -changes, cadenza-mode, key changes, repeat bars. - -Integration with LaTeX through Perl scripts. - - -``WHERE CAN I FIND MORE INFO?'' - -Sources for this project are on - - ftp://pcnov095.win.tue.nl/pub/lilypond/ (Europe) - ftp://alpha.gnu.ai.mit.edu/gnu/ (US) - -More detailed info and examples can be found on the webpage at - - http://www.stack.nl/~hanwen/lilypond/index.html - - -THANK YOU, - -Thanks go out to Mats Bengtsson, Werner Lemberg and Richard Stallman -for comments and contributions. - - -**** NOTE - -LilyPond might have a minor bug if you use glibc-2; we will look into it -If you use glibc-2, please try 0.1.0 to see if it works and, download 0.1.1 -when it's available. - -LilyPond might exhibit a g++ bug on Solaris 1.5 (The stack frame gets corrupted -by a constructor) if you compile with -O2. We don't know workarounds. - - --- * --- - - We would like to dedicate this program to all the friends that we - met through music. - - - Those deserving special mention (in no particular order): -Esther, Marijke, Heike, Inge, Judith, Hannah, Auke, Ilse, Evelyn, -Maartje, Suzanne, Ilse (gee, again?) and last (but certainly not least) -Janneke! - - HWN - - That's a nice thought, Wendy. I've got a few too, to spread -the credits a bit (Again, no particular order) Michelle, Illushka, -Ruth, Eva, Fro/ydis, Monique, Noor, Sascha, Monique, Ilse, Monique, -Eva, Roos, Judith, Tim and, of course, Wendy! - - JCN - - -Of course, our other friends in the `Eindhovens Jongeren Ensemble' -(http://www.stack.nl/~hanwen/eje.html) cannot go unmentioned either. - - - --- * --- diff --git a/ANNOUNCE-1.0 b/ANNOUNCE-1.0 deleted file mode 100644 index 33190c9cf2..0000000000 --- a/ANNOUNCE-1.0 +++ /dev/null @@ -1,102 +0,0 @@ -Keywords: midi notation music typesetting gnu font engraving -Subject: GNU LilyPond 1.0 released - The Music Typesetter - -GNU LilyPond - The Music Typesetter - - -WHAT IS LilyPond? - -LilyPond is the GNU Project music typesetter. This program can print -beautiful sheet music from a music definition file. It can also play -performances to a MIDI file. - - -WHAT'S NEW SINCE VERSION 0.1? - -* LilyPond now includes a completely new music font: the Feta font. - We were quite disappointed with available music fonts, so we rolled - our own. We did our best to copy the best symbol designs available, - and we think that we've succeeded in doing so. We're proud of the - result, and we hope you agree, so go check it out! - -* More elegant output due to - - * more sophisticated beam/slur formatting - * better spacing - * better line breaking - * better font design - * PostScript output for variable symbols - -* Lots of bugfixes - -* More robust, flexible and tweakable design - -* Better MIDI file importing - -* Easier to use due to better shell scripts and input format -enhancements - -* MusixTeX is not needed anymore - -* Faster - - - -FEATURES - -* Multiple staffs, polyphonic music (more voices on one staff), -Polymetric music. - -* Support for full orchestral score: Hara_kiri systems (lines with -only rests are automatically skipped), multi-measure rests, bar -numbering, brackets at the left. - -* Optimal beam slopes, slur/notehead collision resolution, dashed -slurs. Formatting parameters are runtime tunable - -* Very beautiful symbols. Variable size symbols generated on the fly -as embedded postscript. - -* MIDI output - -* Optimal linebreaking, manual intervention possible. Linelength is -settable per line. - -* Readable yet very fast to type input language. With configurable -note names and identifiers. Comes with an emacs-mode - -* With lots of examples (among others a fragment of Van Beethoven's -Coriolan, J.S.Bach Cello Suite II, F. Schubert "Leise flehen meine -Lieder") - -* Runs on UNIX and Windows-32. - -* Easy generation of titling. - -* WWW browsable documentation. - -* Support for Urtext: separation of modern and original interpretation. - -* Polyphonic music (with automatic collision resolution) - -* Spacing and collision resolution of accidentals and syllables is -done automatically - -* Internationalisation support (Italian, Dutch) - -* Multiple font sizes within one piece - -* Integration with LaTeX and YODL - - -MORE INFO - -Sources for this project are on - - ftp://pcnov095.win.tue.nl/pub/lilypond/ (Europe) - ftp://ftp.gnu.org/pub/gnu/ - -More detailed info and examples can be found on the webpage at - - http://www.cs.uu.nl/~hanwen/lilypond/index.html - diff --git a/ANNOUNCE-1.2 b/ANNOUNCE-1.2 deleted file mode 100644 index ec9bef6cd2..0000000000 --- a/ANNOUNCE-1.2 +++ /dev/null @@ -1,62 +0,0 @@ --*- text -*- - - -Keywords: midi notation music typesetting gnu font engraving -Subject: GNU LilyPond 1.2 released - The Music Typesetter - -GNU LilyPond - The Music Typesetter - - -WHAT IS LilyPond? - -LilyPond is the GNU Project music typesetter. - -LilyPond produces beautiful sheet music using a high level description -file as input. - - -BROWSE - -Documentation and examples can be found on - - http://www.cs.uu.nl/~hanwen/lilypond/ - - -DOWNLOAD - -Sources for this project are on - - ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/v1.2/ (Europe) - ftp://ftp.gnu.org/pub/lilypond/ - -Prepackaged i386 and PPC packages for both Debian and RedHat GNU are -also available. - - -WHAT'S NEW? - -* Large cleanups, enhanced design and GUILE integration for smaller - memory footprint and more flexible code. - -* Direct output to PostScript (optional), PDFTeX or as GUILE script - (default output still to plain TeX). - -* Convertors for ABC and MUP formats. - -* Font: now available as scalable PostScript. New glyphs: time - signature, more note heads. - -* Enhanced input: semi-automatic beaming, (nested) tuplets, (nested) - repeats, chordnames, automatic Lyrics durations. - -* Grace notes, volta brackets, multiple styles for note heads and - time signatures, breathing signs, lyric extenders, cross staff - beaming and slurring. - -* --safe option for the paranoid. - -* More elegant spacing. Text is spaced exactly. - -* Lots of bugfixes. - - diff --git a/AUTHORS.txt b/AUTHORS.txt deleted file mode 100644 index b58b34bf2f..0000000000 --- a/AUTHORS.txt +++ /dev/null @@ -1,67 +0,0 @@ - - -AUTHORS - who did what on GNU LilyPond? -*************************************** - - This file lists authors of GNU LilyPond, and what they wrote. This -list is alphabetically ordered. - - * Tom Cato Amundsen , cembalo-partita in - mudela, accordion symbols, some mudela-book.py - - * Mats Bengtsson , - `http://www.s3.kth.se/~matsb/' lots of testing, fixes, general - comments and contributions. - - * Eric Bullinger , accidental transposition. - - * Laura Conrad (lconrad@world.std.com) fixes to abc2ly - - * Jan Arne Fagertun , TeX - titling and lytodvi.sh - - * Anthony Fok , debian package: debian/* - - * Bjoern Jacke german glossary stuff. - - * Neil Jerram . parts of - Documentation/Vocab* - - * Donald Ervin Knuth, `http://www-cs-staff.stanford.edu/~knuth/' - mf/ital-*.mf (these were taken from the CM fonts) - - * Michael Krause , breathing signs - - * Werner Lemberg , misc bugfixes, some Beam and Stem - code. - - * David R. Linn , Mailing list - maintenance. - - * Adrian Mariano <> Reference manual, tutorial fixes, glossary. - - * Han-Wen Nienhuys , - `http://www.cs.uu.nl/~hanwen/' Main author (initials: HWN). - - * Jan Nieuwenhuizen , - `http://www.xs4all.nl/~jantien/' Main author (initials: JCN). - - * Alexandre Oliva , - `http://sunsite.unicamp.br/~oliva/' testing - - * Franc ois Pinard, parts of - Documentation/Vocab*, started internationalization stuff - - * Glen Prideaux , minor bug fix to - script used to generate doc++ documentation - - * Roy R. Rankin , major extension, - fixes to abc2ly, lilypond bug fixes - - * Jeffrey B. Reed , Windows-NT support. - - * Shay Rojanski Some mudela source. - - Your name could be here! If you want to fix something, do it, and -send us a patch! - diff --git a/CHANGES b/CHANGES index 3c07949e2c..604f59c4aa 100644 --- a/CHANGES +++ b/CHANGES @@ -1,8 +1,22 @@ +pl 15 (Oct 18) + 14.jcn1 + - Kludge for accented chars (thanks, Mats) - bf: don't fail on error in doco package - doco package: noarch - bf: standchen: mutopia prep +14.hwn1 + - move some misc stuff into Documentation/misc/ + - cleanups: slur & beam. + - junked Encompass_info + - Smobs -- simplifies sc_elt memory management + - Timing_engraver collects bar reqs + - unfold all if doing MIDI. + - bfs: do something sensible if it doesn't fit. + - penalties for break stuff supported. + +******* 13.jcn2,3 - mutopia/J.S.Bach/Petites-Preludes: bf's and mutopia preraration - separate documentation package diff --git a/Documentation/BLURB.in b/Documentation/BLURB.in deleted file mode 100644 index 52e0ef5c75..0000000000 --- a/Documentation/BLURB.in +++ /dev/null @@ -1,3 +0,0 @@ -LilyPond is a music typesetter. It produces beautiful sheet music -using a high level description file as input. LilyPond is part of -the GNU Project. diff --git a/Documentation/COPYRIGHT b/Documentation/COPYRIGHT deleted file mode 100644 index 1628105c98..0000000000 --- a/Documentation/COPYRIGHT +++ /dev/null @@ -1,88 +0,0 @@ -[Note to uninitiated readers. This is a Q&A document that explains -what to watch out for when submitting scores for the Mutopia project. -The Mutopia project is an effort to accumulate an archive of sheet -music that is in the public domain. The project should be similar to -the Gutenberg project. - -We will be using music typesetting software to produce the software. -The project will only accept music for composers that have passed into -the PD. The sole remaining problem is caused by the editorial -changes. A recent edition may contain editorial amendments that are -not in the PD, so we cannot simply copy the music from recent -editions.] - - - -What is copyright? - -Copyright is a legal system that protects the expressions of ideas. -It was originally conceived to foster development of art and -knowledge. - -Copyright law gives "owners" of the expressions the right to restrict -reproductions of these expressions and collect fees. In this way they -can earn a living. For example, a poet may restrict xeroxing and -public performances of his poems, and demand a fee for print for -prints and performances. - -After some time ---for most forms of expression, this is 70 years -after the author died--- the work goes into the public domain, which -means that all restrictions are lifted. You can print, perform and -modify the works as much as you like. - -Copyright law is internationalised. In most countries the conditions -from the Berne convention have been adopted. - - - - -How does copyright work for music scores? - -Let's analyze how a printed score is produced: - -1. The composer composes music. - -2. An editor edits the music, based on the composer's manuscript and -on other editions. - -3. An engraver lays out the editor's product. - -As you can see, there are three individuals, whose expressions are -protected by copyright law. Since we are interested in the scores -that are in the PD. - -The copyright on the music itself passes into the PD 70 years after -the death of the composer. (Or XXXX years after publication if the -work is published posthumously.) - -The copyright on the editorial changes pass in to the PD 70 years -after death of the editor, or XXX years after publication. Depending on YYY - -The copyright of the engraver is of no interest to us, since we will -not reproduce any of the layout. - - - -What are editorial changes? - - - - - - -How do I find out what changes might be copyrighted? - -You cannot copyright something you did not create yourself. So if you -find the same editorial changes across different editions it is -unlikely that it is copyrighted. - - - - -Urtexts? - - - -Scores that are not marked with dates? - - diff --git a/Documentation/GNUmakefile b/Documentation/GNUmakefile index d900ff88fc..1d6e86f54e 100644 --- a/Documentation/GNUmakefile +++ b/Documentation/GNUmakefile @@ -1,25 +1,16 @@ -# Documentation/Makefile - depth = .. NAME = documentation -SUBDIRS= user metadoc bibliography pictures topdocs ntweb +SUBDIRS= user metadoc bibliography pictures topdocs ntweb misc STEPMAKE_TEMPLATES=documentation texinfo -README_TOP_FILES=NEWS DEDICATION TODO AIMS CHANGES -INFO_FILES = $(wildcard $(outdir)/$(package).info*) -EXTRA_DIST_FILES = COPYRIGHT - - - -BLURBS=BLURB +README_TOP_FILES=NEWS DEDICATION CHANGES +EXTRA_DIST_FILES = include $(depth)/make/stepmake.make default: do-doc -info: $(outdir)/$(package).info - local-WWW: copy-for-me copy-for-me: diff --git a/Documentation/MANIFESTO.texi b/Documentation/MANIFESTO.texi deleted file mode 100644 index 4900adb78f..0000000000 --- a/Documentation/MANIFESTO.texi +++ /dev/null @@ -1,114 +0,0 @@ -\input texinfo @c -*-texinfo-*- -@setfilename MANIFESTO.info -@settitle MANIFESTO - Rationale behind the GNU LilyPond project - -@node Top, , Goals for mudela, (dir) -@top -@menu -* MANIFESTO - Rationale behind the GNU LilyPond project::MANIFESTO - Rationale behind the GNU LilyPond project -@end menu - - - -@node MANIFESTO - Rationale behind the GNU LilyPond project, Goals for LilyPond, , Top -@menu -* Goals for LilyPond:: Goals for LilyPond -* Development constraints:: Development constraints -* Goals for mudela:: Goals for mudela -@end menu -@chapter MANIFESTO -- Rationale behind the GNU LilyPond project - - -@node Goals for LilyPond, Development constraints, MANIFESTO - Rationale behind the GNU LilyPond project, MANIFESTO - Rationale behind the GNU LilyPond project -@section Goals for LilyPond - -GNU LilyPond was written with some considerations in mind: - -@itemize @bullet -@item Describing a well-defined language for defining music. We call - this language (rather arrogantly) The Musical Definition Language - (mudela for short). GNU LilyPond reads a mudela sourcefile and outputs a - TeX file. -@item Providing an easy-to-use interface for typesetting music in - its broadest sense. This interface should be intuitive from a musical - point of view. By broadest sense we mean: it is designed for music - printed left to right in staffs, using notes to designate rythm and - pitch. -@item Generating high-quality output. Ideally it should be of a professional - quality. We'd like to render Herbert Chlapiks words, "Fine music - setting is not possible without a knowledgeable printer," untrue. -@item Making a system which is fully tweakable. It should be possible to - typeset a book on how not to typeset music. -@end itemize - -@node Development constraints, Goals for mudela, Goals for LilyPond, MANIFESTO - Rationale behind the GNU LilyPond project -@section Development constraints - -Further considerations while doing the programming - -@itemize @bullet -@item GNU LilyPond uses TeX for its output. This is not a key issue: in a - future version, GNU LilyPond might bypass TeX, but at the moment TeX - is convenient for producing output. -@item GNU LilyPond does not display notes directly, nor will it be rehacked - to be used interactively. GNU LilyPond writes output to a file. It - will not be extended to play music, or to recognize music. -@item GNU LilyPond is intended to run on Unix platforms, but it should - be portable to any platform which can run TeX and the GNU tools -@item GNU LilyPond is free. Commercial windows packages for setting music are - abundant. Free musicprinting software is scarce. For more thoughts on - this, please consult the @file{gnu-music} documentation. -@item GNU LilyPond is written in GNU C++. It will not be downgraded/ported to fit - broken systems. -@end itemize - -@node Goals for mudela, Top, Development constraints, MANIFESTO - Rationale behind the GNU LilyPond project -@section Goals for mudela - -The design of Mudela has been (perfect past tense, hopefully) an -ongoing process, the most important criteria being: - -@itemize @bullet -@item define the (musical) message of the composer as unambiguously as possible. - This means that, given a piece Mudela, it should be possible for a - program to play a reasonable interpretation of the piece. - - It also means that, given a piece of Mudela, it should be possible for a - program to print a score of the piece. -@item be intuitive, and easily readable (compared to, say, Musi*TeX input, - or MIDI :-), -@item be easily writable in ASCII with a simple texteditor -@end itemize - -Other considerations were (and will be): - -@itemize @bullet -@item be able to edit the layout without danger of changing the original - music (Urtext), -@item allow for adding different interpretations, again, - without danger of changing the original, -@item easy to create a conductor's score, - as well as the scores for all individual instruments, -@item provide simple musical manipulations, such as @emph{i} extracting a - slice of music from a previously defined piece, @emph{ii} extracting - only the rhythm from a piece of music, @emph{iii} transposing, etc., -@item easy to comprehend to both programmers and others. -@end itemize - -One of the things that (might) be here would be: feasible to use in a -graphic editor. We don't have experience with these beasts, so we -don't know how to do this. Comments appreciated. - -Musical pieces could be - -@itemize @bullet -@item Orchestral scores, (eg Mahler) -@item piano pieces (eg. Schubert, Rachmaninov), -@item pop songs (lyrics and chords), -@item Gregorian chants, -@item Bach multivoice organ pieces, -@item Short excerpts to be used in musicological publications. -@end itemize - - -@bye diff --git a/Documentation/index.texi b/Documentation/index.texi index f308cfe45b..31afd58918 100644 --- a/Documentation/index.texi +++ b/Documentation/index.texi @@ -8,33 +8,29 @@ @unnumberedsubsec Introduction @itemize -@item @uref{../topdocs/out-www/README.html, README} -@item @uref{../topdocs/out-www/INSTALL.html, Installation Instructions} -@item @uref{../topdocs/out-www/AUTHORS.html,The Authors} +@item @uref{DEDICATION.txt,Dedication} +@item @uref{../topdocs/out-www/AUTHORS.html, Authors} +@item @uref{../topdocs/out-www/README.html, Readme file} +@item @uref{../topdocs/out-www/INSTALL.html, Installation instructions} @end itemize - - @unnumberedsubsec Documentation @itemize @bullet -@item @uref{faq.html,FAQs} +@item @uref{faq.html,Frequently asked questions}, with answers @item @uref{programs.html,`Manual pages'} @item @uref{../user/out-www/index.html,User documentation} @item @uref{../metadoc/out-www/index.html,Hacker documentation} @item @uref{../bibliography/out-www/,Bibliography} +@item @uref{../misc/out-www/index.html,Miscellaneous texts} @end itemize -@unnumberedsubsec Miscellaneous blurbs - - -@itemize @bullet -@item @uref{TODO.txt, TODO list} -@item @uref{CHANGES.txt,Change log} -@item @uref{DEDICATION.html,DEDICATION} -@item @uref{AIMS.txt,Why?} +@unnumberedsubsec{Status} +@itemize +@item @uref{TODO.txt, Thing to do} +@item @uref{CHANGES.txt, Things recently done} @end itemize diff --git a/Documentation/metadoc/regression-test.tely b/Documentation/metadoc/regression-test.tely index f945a54105..24e4d58902 100644 --- a/Documentation/metadoc/regression-test.tely +++ b/Documentation/metadoc/regression-test.tely @@ -162,10 +162,10 @@ Unfolded behavior: @mudelafile{repeat-unfold.ly} -Semi (un)folded behavior. Voltas can start on non-barline moments. +Volta (Semi folded) behavior. Voltas can start on non-barline moments. If they don't barlines should still be shown. -@mudelafile{repeat-semifold.ly} +@mudelafile{repeat-volta.ly} Folded. This doesn't make sense without alternatives, but it works. @@ -237,9 +237,19 @@ Loose: @mudelafile{spacing-loose.ly} +Adding a @code{Bar_engraver} to the LyricsVoice context makes sure that +lyrics don't collide with barlines. + +@mudelafile{lyrics-bar.ly} @section Global stuff +Breaks can be encouraged and discouraged using @code{\break} and +@code{\nobreak}. They are abbrevs for @code{\penalty} commands. + +@mudelafile{break.ly} + + Markings that are attached to (invisible) barlines are delicate: the are attached to the rest of the score without the score knowing it. Consequently, they fall over often. diff --git a/Documentation/misc/AIMS b/Documentation/misc/AIMS new file mode 100644 index 0000000000..ae5d5a9658 --- /dev/null +++ b/Documentation/misc/AIMS @@ -0,0 +1,92 @@ +[From a posting in rec.music.classical.guitar] + +I started coding on Lilypond because I am fascinated by music and by +typography. I have never used any egngraving software, and do not +feel the need to investigate other programs, for the simple reason +that I have no need of typesetting music. In fact, I almost never use +Lilypond. I believe that the largest thing I ever entered was Bach's +WTK-I fugue 2, two pages of piano music. I entered it about 1.5 years +ago. + +I am fascinated by this complicated problem, typesetting music with a +computer. And that is why I started writing Lilypond: purely for the +hack value, for the fun of coding. To me, music notation is like a +giant puzzle. I have been coding on Lilypond and studying music +notation in my spare time for the past three years. Since this is my +hobby, strictly spoken I have no obligations concerning Lily, neither +moral, nor legal. Of course, I am open to pleas and requests and +often do respond to them, but I have the choice to ignore them, and +occasionally I do. + +Lilypond tries to typeset music *automatically*. We (*) try to put as +much of our knowledge of music typography into the program as +possible, and have as little typographical information in the input as +possible. Basically, you ought to be able to produce nicely printed +scores with Lilypond without knowing anything about engraving. + + footnote (*): We = me and Jan Nieuwenhuizen, who wrote about + 30% of the code, and provided most of the examples.) + +A second important issue is that Lilypond is free. Not only in the +sense that you can download Lilypond at no charge, but it is also free +as in "free speech". User are free to modify the program to suit +their needs, and redistribute or sell the program. Moreover, since +the program can be downloaded at no cost, I don't gain anything if it +gets more users. And here I mean "use" as opposed to "use and +enhance" or "use and give helpful comments". + +We have not made a program for professionals, and as a result, hackers +have begun to use it. Some of them have sent me modifications that +improve the software. This is good for us, because it helps us solve +our puzzle more quickly. We would have made the program useful for +professionals like you, presumably they would start using it, be glad +they didn't have to pay, and ignore me. That would not help me solve +my puzzle; I don't gain anything. + +The system has reached a point that it is useful for quite a lot of +people (we get about 200 downloads per month from the main FTP site), +and a lot of my users have thanked me for rescuing them from tedious +typesetting work using Finale, Encore and what-have-you-more. I have +a user in Russia who tries make a living by typesetting a 260-page +book on harmonic-theory using Lilypond. I have a user that can +typeset his own 45 page orchestral score. Laymen have called our +printout of the Bach Cello Suite 2 of "professional quality". + +This program is now useful to more people than a program solely aimed +at professional use. + +Obviously, we're not finished yet, since the program still contains +quite a lot bugs. We know the examples on the website contain lots of +errors. Tweaking the input to fix up and hide the errors would cost +us a lot of time. Time that is better spent improving the program +itself. So, we don't hide the errors. + +Most of the errors that are shown on the website are not caused by our +lack of knowledge, but rather by a lack of time and the sheer +complexity of this big puzzle we're solving. + +In the end, we also want a system that is fully tweakable, so you can +also produce professional quality typesetting. But being +straightforward to use for non-professionals is more important now. + +Finally, I would like to stress that my goals while programming on +LilyPond are separate from my beliefs of what should be done with the +program. I can not control what the program is used for, nor do I want +to. People can typeset lullabies for their baby daughters or racist +warsongs to help fascist leaders. + +A fortiori, I can not control what copyright users place on their +input and output. If you want to do commercial music editing (with +LilyPond) you can publish scores on paper and keep the input and +output to your self. You can publish the score online, and keep the +input to yourself. You can put the input online as well, while +forbidding modifications. You can publish the input and allow +modifications. + +This is all up to the user of the software, not to me. + + +Han-Wen Nienhuys, + +April 11, 1999 + diff --git a/Documentation/misc/ANNOUNCE-0.1 b/Documentation/misc/ANNOUNCE-0.1 new file mode 100644 index 0000000000..8ed22c92be --- /dev/null +++ b/Documentation/misc/ANNOUNCE-0.1 @@ -0,0 +1,165 @@ +Keywords: midi notation music typesetting gnu +Subject: LilyPond 0.1 released - The GNU Project music typesetter + + BORN + + August 1, 1997 + + Lily + + (GNU LilyPond 0.1) + + daughter to Jan 'Janneke' Nieuwenhuizen and Han-Wen 'Wendy' Nienhuys + +Lily is a healthy, bouncing baby weighing 345 kilobytes + +Visiting hours: 24 hours a day at + + ftp://pcnov095.win.tue.nl/pub/lilypond/lilypond-0.1.0.tar.gz (Europe) + ftp://alpha.gnu.ai.mit.edu/gnu/lilypond-0.1.0.tar.gz (US) + +You can see some babyfood, diapers and pictures at + + http://www.stack.nl/~hanwen/lilypond/index.html + +You can send your congratulations to Janneke (janneke@gnu.org) and +Wendy (hanwen@stack.nl) + + +GNU LilyPond - The GNU Project Music Typesetter + + + +``WHAT IS GNU LilyPond?'' + +Well Mike, GNU LilyPond is a program which converts music definition +files into visual or auditive output: it can typeset formatted sheet +music to a TeX file and (mechanical) performances to MIDI files. + + +We have been working very hard on this system for the past year, and +we finally think that it is ready to be used and hacked at by a larger +public than us. + + +WHY ? + +We want to create tools to produce production quality scores and parts +of public domain music. + + +BUT .. + +We haven't yet reached that goal: + +* The quality of the output isn't good enough yet due to some +unsophisticated algorithms + +* Some features haven't been implemented, due to lack of time; most of +them can be done quite simply + +This is why we don't consider this software stable yet. It generally +does what it is supposed to, but we reserve the right to make +(incompatible) changes to the input format. We consider it +of BETA quality. + + +WE WANT YOU! + +You can become a user, but we'd really appreciate it if you would start +hacking at Lily, and help us advance our project more quickly. + + +``YES, IT IS FANTASTIC! WHAT DO I NEED?'' + +For compilation you need + + Unix. (windows32 is known to work, too) + GNU C++ v2.7 or better, with libg++ installed. + GNU make. + Flex (2.5.1 or better). + Bison. (1.25 or better) + +For running you need + + TeX + MusiXTeX fonts + +The MusiXTeX fonts are part of the MusiXTeX package version T.73, +available at any CTAN mirror, or http://www.gmd.de/Misc/Music/ + + +``WHAT CAN LILYPOND DO?'' + +ASCII script input (mudela), with identifiers (for music reuse), +customizable notenames. + +MIDI output lets you check if you have entered the correct notes. +MIDI to Mudela conversion through the mi2mu program. + +Multiple staffs in one score. Each staff can have a different meters. +Multiple voices within one staff (up to four handled graciously); +beams optionally shared between voices. Multiple scores within one +input file. Each score is output to a different file. + +Beams, slurs, chords, super/subscripts (accents and text), +general n-plet (triplet, quadruplets, etc.), lyrics, transposition, +dynamics (both absolute and hairpin style), clef changes, meter +changes, cadenza-mode, key changes, repeat bars. + +Integration with LaTeX through Perl scripts. + + +``WHERE CAN I FIND MORE INFO?'' + +Sources for this project are on + + ftp://pcnov095.win.tue.nl/pub/lilypond/ (Europe) + ftp://alpha.gnu.ai.mit.edu/gnu/ (US) + +More detailed info and examples can be found on the webpage at + + http://www.stack.nl/~hanwen/lilypond/index.html + + +THANK YOU, + +Thanks go out to Mats Bengtsson, Werner Lemberg and Richard Stallman +for comments and contributions. + + +**** NOTE + +LilyPond might have a minor bug if you use glibc-2; we will look into it +If you use glibc-2, please try 0.1.0 to see if it works and, download 0.1.1 +when it's available. + +LilyPond might exhibit a g++ bug on Solaris 1.5 (The stack frame gets corrupted +by a constructor) if you compile with -O2. We don't know workarounds. + + --- * --- + + We would like to dedicate this program to all the friends that we + met through music. + + + Those deserving special mention (in no particular order): +Esther, Marijke, Heike, Inge, Judith, Hannah, Auke, Ilse, Evelyn, +Maartje, Suzanne, Ilse (gee, again?) and last (but certainly not least) +Janneke! + + HWN + + That's a nice thought, Wendy. I've got a few too, to spread +the credits a bit (Again, no particular order) Michelle, Illushka, +Ruth, Eva, Fro/ydis, Monique, Noor, Sascha, Monique, Ilse, Monique, +Eva, Roos, Judith, Tim and, of course, Wendy! + + JCN + + +Of course, our other friends in the `Eindhovens Jongeren Ensemble' +(http://www.stack.nl/~hanwen/eje.html) cannot go unmentioned either. + + + --- * --- diff --git a/Documentation/misc/ANNOUNCE-1.0 b/Documentation/misc/ANNOUNCE-1.0 new file mode 100644 index 0000000000..33190c9cf2 --- /dev/null +++ b/Documentation/misc/ANNOUNCE-1.0 @@ -0,0 +1,102 @@ +Keywords: midi notation music typesetting gnu font engraving +Subject: GNU LilyPond 1.0 released - The Music Typesetter + +GNU LilyPond - The Music Typesetter + + +WHAT IS LilyPond? + +LilyPond is the GNU Project music typesetter. This program can print +beautiful sheet music from a music definition file. It can also play +performances to a MIDI file. + + +WHAT'S NEW SINCE VERSION 0.1? + +* LilyPond now includes a completely new music font: the Feta font. + We were quite disappointed with available music fonts, so we rolled + our own. We did our best to copy the best symbol designs available, + and we think that we've succeeded in doing so. We're proud of the + result, and we hope you agree, so go check it out! + +* More elegant output due to + + * more sophisticated beam/slur formatting + * better spacing + * better line breaking + * better font design + * PostScript output for variable symbols + +* Lots of bugfixes + +* More robust, flexible and tweakable design + +* Better MIDI file importing + +* Easier to use due to better shell scripts and input format +enhancements + +* MusixTeX is not needed anymore + +* Faster + + + +FEATURES + +* Multiple staffs, polyphonic music (more voices on one staff), +Polymetric music. + +* Support for full orchestral score: Hara_kiri systems (lines with +only rests are automatically skipped), multi-measure rests, bar +numbering, brackets at the left. + +* Optimal beam slopes, slur/notehead collision resolution, dashed +slurs. Formatting parameters are runtime tunable + +* Very beautiful symbols. Variable size symbols generated on the fly +as embedded postscript. + +* MIDI output + +* Optimal linebreaking, manual intervention possible. Linelength is +settable per line. + +* Readable yet very fast to type input language. With configurable +note names and identifiers. Comes with an emacs-mode + +* With lots of examples (among others a fragment of Van Beethoven's +Coriolan, J.S.Bach Cello Suite II, F. Schubert "Leise flehen meine +Lieder") + +* Runs on UNIX and Windows-32. + +* Easy generation of titling. + +* WWW browsable documentation. + +* Support for Urtext: separation of modern and original interpretation. + +* Polyphonic music (with automatic collision resolution) + +* Spacing and collision resolution of accidentals and syllables is +done automatically + +* Internationalisation support (Italian, Dutch) + +* Multiple font sizes within one piece + +* Integration with LaTeX and YODL + + +MORE INFO + +Sources for this project are on + + ftp://pcnov095.win.tue.nl/pub/lilypond/ (Europe) + ftp://ftp.gnu.org/pub/gnu/ + +More detailed info and examples can be found on the webpage at + + http://www.cs.uu.nl/~hanwen/lilypond/index.html + diff --git a/Documentation/misc/ANNOUNCE-1.2 b/Documentation/misc/ANNOUNCE-1.2 new file mode 100644 index 0000000000..ec9bef6cd2 --- /dev/null +++ b/Documentation/misc/ANNOUNCE-1.2 @@ -0,0 +1,62 @@ +-*- text -*- + + +Keywords: midi notation music typesetting gnu font engraving +Subject: GNU LilyPond 1.2 released - The Music Typesetter + +GNU LilyPond - The Music Typesetter + + +WHAT IS LilyPond? + +LilyPond is the GNU Project music typesetter. + +LilyPond produces beautiful sheet music using a high level description +file as input. + + +BROWSE + +Documentation and examples can be found on + + http://www.cs.uu.nl/~hanwen/lilypond/ + + +DOWNLOAD + +Sources for this project are on + + ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/v1.2/ (Europe) + ftp://ftp.gnu.org/pub/lilypond/ + +Prepackaged i386 and PPC packages for both Debian and RedHat GNU are +also available. + + +WHAT'S NEW? + +* Large cleanups, enhanced design and GUILE integration for smaller + memory footprint and more flexible code. + +* Direct output to PostScript (optional), PDFTeX or as GUILE script + (default output still to plain TeX). + +* Convertors for ABC and MUP formats. + +* Font: now available as scalable PostScript. New glyphs: time + signature, more note heads. + +* Enhanced input: semi-automatic beaming, (nested) tuplets, (nested) + repeats, chordnames, automatic Lyrics durations. + +* Grace notes, volta brackets, multiple styles for note heads and + time signatures, breathing signs, lyric extenders, cross staff + beaming and slurring. + +* --safe option for the paranoid. + +* More elegant spacing. Text is spaced exactly. + +* Lots of bugfixes. + + diff --git a/Documentation/misc/CHANGES-0.0 b/Documentation/misc/CHANGES-0.0 new file mode 100644 index 0000000000..f936254a1f --- /dev/null +++ b/Documentation/misc/CHANGES-0.0 @@ -0,0 +1,1170 @@ + +This file documents changes in version 0.0 + +august 1 + +VERSION 0.1.0 + + - bf: output tempo to track 0 too + - bf: don't forget to copy id_str_, so moved into Music + +pl 78.jcn2 + - INFTY doze fixes + +pl 78.jcn1 + - fix for multi-staff midi: wohltemperirt.ly, standchen.ly + - doze fixes + - bf: conflily, configure (text) +***** +july 31 +pl 78 + - bf: Midi_instrument + - added enable/disable defaults to help. + - incredibly ugly NAME_MEMBERS(); bug. Immediately changed to +DECLARE_MY_RUNTIME_TYPEINFO; + - \stem -1 -> \stem \down in input + - bf: slurchar index + - configure warnings + - preliminary stuff for multiarch building + - #!/usr/bin/perl fixes (AO) + - some Makefile cleanups: now faster. + +pl 77.jcn2 + - Midi_instrument + +****** +july 29 +pl 77 + - some fixes for internal compiler errors +derive from Pointer_list with default dtor gives error with -O2 + - .ini -> .ly + - lyrics fix + - Performer beautification: got rid of set_track(), midi_output() + - pseudo RTTI for midi-items + - bf: Performer*::print() + - links.pod + - Voice_element -> Request_chord + - fixed flex problems: stdin input works again + - Documentation/Rules.make, make-website via make + - spacing: now add basicspace + +******* +july 28 +pl 76 + - mudela version bumped to 0.1 + - mudela-book + - doco updates, now some stuff in LaTeX + - junked book.{ly,tex} example + - progress indicator + - rhythm.ly updated + - removed mf sources from distribution due to (c) stuff + - allowal of breaks handled cleanly + - junked Subtle_reqs, junked Request_iterator. Request + iteration now by Voice_element_iterator + - Piano_bar, Piano_bar_engraver, Span_score_bar_engraver, + Span_score_bar + - Swallow_performer + - removed Staff_engravers, grouping into Line_group_engraver + - Head_column as base for Rest_column,Note_column + - Score_column derived from PCol + - regurgled Line spacing: interface and implementation + separate. Idealspacing moved into Spring_spacer + - Gourlay style linespacing + +pl 75.jcn6 + - {lyric,meter,key}-performer + - span-brace-* (Removed again. Such is life) + - doze compile + - midi output, notes only + - working midi output -- hacked + - doze compile, mingw32 configure (still triggers gcc int. comp err) + +pl 74pre.jcn2 + - mi2mu fixes after scott snyder [sss] + - mi2mu update for mudela 0.0.61 + - conflily fixes + +******* +july 21 + +pl 75 + - inbook.ly & book.tex example. + - natural width: linewidth = -1.0\cm + +pl 74pre.jcn1 + - oversimplified midi output thru performer hierarchy + - bf: Spanner::doprint + +pl 72pre.jcn1 + - naming fixes; some iter*() explicitations + - removed acceptor.hh + - *performer*: second draft of midi (audio/...) + +******* +july 9 + +pl 74pre + - Input_engraver -> Input_translator + - bf: span start/stop is now a "used" col. + - Rest_column/Rest_collisions bugfixes + - bf: crescendi. + - Spanner do_print() + +****** +july 7 +pl 73pre + - some refs doco. + - move Input_engraver into Paper_def + - junk Interpreter + - naming: Request_engraver -> Engraver, + - Music_iterator::next() -> process_and_next() + - junk Voice_engravers + - Span_bar, Span_bar_engraver + - Vertical_align_engraver + +******* +july 2 +pl 72pre + - \paper{} syntax: var = 1.0\pt;, with an Assoc array + - sketch of MIDI Performer classes. + - bf: memleak in parser + - naming: Acceptor -> Translator + - input: bf collisions.ly, scales.ly + - bf: [r8 c8] + - naming: Register -> Engraver + - force \\ on identifiers + - doco updates + - musixtex T73 fonts + +pl 70.mb + - bf: find syntax in Variables.make +***** +july 1 +pl 71pre + - nested \melodic and \lyric constructs + - init id's, Input_register aliases. + - bf: notehead x-swap + - bf: auto-keys. + - bf: first clef + - junked \init_end; construct + - Preparatory work for MIDI output: + * Acceptor as baseclass for Register_group_register + * Global_acceptor as interface of Register to Score + - bf: empty voice + - Lyrics: partially working + - some doco updates (junks, mostly) + + +****** +june 30 + + +pl 70pre + - bf: text Script + - bf: Script::dir_i_ checks. + - bf: script stacking + - bf: Text_spanner::do_subst. + - bf: Text_spanner::Text_spanner(Text_spanner&) + - bf: script priority read from script.ini + - bf: Script_def::do_equal_b + - bf: script dims. + - mudela: ; obligatory for \paper {}. + - some cosmetic changes involving RTTI macros + +******* +june 29 +pl 69pre + - bf: whole rest position, whole/half rest dots. + - bf: scripts + - reg termination + - centered bars + - bf: init of Tie::dir_i_ + - bf: Staff_side depends on staff_sym_ + - bf: Script::do_substitute_dependency() now implemented + - more print info (also in output) + - bf: Vertical_align_element + - stemless beams now allowed (with warning) + - bf: Rest_column::stem_l_ init + - merge rests.ly with collisions.ly + +pl 67.jcn3 + - rests under beam [c8 r c] + +pl 67.jcn2 + - first attempt at rest collisions + - rests.ly + +pl 67.jcn1 + - beam stem length: beams.ly + - bf: mingw configure + - re: conflily + +****** +june 26 +pl 68pre + - doco: other-packages.pod, lots of lilyliterature.pod + - last duration mode now is default. + - some OpusTeX stuff. + - bf Y2K in convert-mudela + - Grand rewrite of Music/Register stuff: + * separation of Y and X-elt-groups + * Registers: info up: broadcasts, info down: get_xxx_info() + * Registers: try_request works from bottom to top of tree. + * Score_elem empty_b_ and transparent_b_ flag + * Junk Staff_column, and find the requests while walking the + Voices. + * Score_register + * Staff_group, Score_request_register. + * align key/Meters/bar across staffs + * junked Staff, Staff_column, Staff_walker, Complex_walker, + Request_column Pulk_voice, Pulk_voices, Walker_registers, + Voice_element, + Input_score, Input_staff, Input_music and a lot of + parserjunk. + * mudela: lots of structure changes : now much simpler + * generation of pre/postbreak items now in Score_elem with deps. + + - bf: make_patch explanation + - bf: make install TeX stuff + - mudela: . mandatory for REALs + + +pl 67 + - damped beamslope after wanske + +****** +june 3 +pl 67 + - sketch of Music classes + - General_script_def as baseclass for Text_def and Script_def + - bf: clean lib/out/liblily.a + - bf: rests shorter than 1/4 + +pl 66.jcn3 + - bf: make uninstall + - conflily + - f: some pedaling + - plet hack removed :-( [ c c c ]2/3 -> [2/3 c c c ]1/1 + +pl 66.jcn2 + - bf: bar, Hilfslinie + - bf: configure for mingw32 + +pl 66.jcn1 + - WIN32 -> WINDOWS32, more win32->windows32 + - some GNU/Linux changes + - cygnus b18 / mingw update + - doze compile; bf: p-score.cc compares + - reincluded toccata fixes + - small stuff: vi tags, typos, bibl + +****** +may 27 +pl 66 + - make_website --jpeg, --png and --gif + - win32 -> windows32 + - bf: Score_elem::TeXstring assert fail + - bf: headswap with stemdown + - bf: broken tie + - bf: broken slur + - bf: accidental dims + - bf: measure bar width + + +****** +may 26 + +pl 65 + - bf pathfind /root/file + - massive Score_elem rewrite: + * group_element_i_ count + * support for removing an individual Score_elem cleanly. + * moved dep stuff into class Directed_graph_node + * Score_elems can be copied and deleted freely. + * junk PStaff + * Spanner_elem_group + * Line_of_{score,staff} now are Score_elems + * clean dep handling upon deletion + * delete unbroken spanners + * added a break_processing round. + * Super_elem + - junk Complex_staff, + - clean {lily}?proto.hh + - Element_group + - Score_elem now as virtual base class everywhere + - naming: Staff_elem -> Score_elem + - bf: make in toplevel dir + - bf: broken tie y-pos + - bf: sharing 4th, 8th and 16th noteheads + - bf: overlapping chords. <\multivoice c d > + +pl 64.wl + - new stem direction code + - bfs: wohltemperirt.ly (thanks, Werner) + - bf: stem direction + +pl 63.jcn2 + - doze compile + +pl 63.jcn1 + - bf: mi2mu mudela commands + - bf: mi2mu tracks + - mi2mu quantify tuning + - mi2mu TODO + +********* +may 16 +pl 64 + - exe's now built in out/ + - toplevel Makefile dep from make/Toplevel.make.in + - make_website: add version footer + - make_website: bf dist *.txt + - bf: fix loose bars : \meter 4/4; c1. + - Staff_elem -> Score_elem + - bf + - vbrace lookup + - resync barcheck + +******* + +may 15 +pl 63 + - bf: segfault during MIDI output with mi2mu output. + - kludge: parse error beyond eof + - don't read ini if toplevel file not found + - accumulate \kern in TeX output. + - bf: try to prevent long lines; TeX breaks on them. + - naming: Pointer->Link, IPointer->Pointer + - bf: \plet didn't work (MB) + - GMP manifesto. + +pl 61.jcn4 + - mi2mu -p -s16 fugua2.midi getting better! + plus factor 2 mi2mu speedup (fugue2.midi 5.50user) + - bf: Duration_convert quantify threshold down + - bf: (on quantify): tcols quantified; no silly voices + +pl 61.jcn3 + - lily parsing speedup: backup rules for lexer.l + - bf: mi2mu, using midi_voice list... + +pl 61.jcn2 + - all in all mi2mu speedup of about factor 8 since pl61 + (fugue.midi 82.72user to 10.30user on a 586.133) + what about lily? + - binary search on track-columns + - mi2mu IP*list to Array (implications?!) conversion + - mi2mu parsing speedup: backup rules for midi-lexer.l + - bf: zero denominator + +********** +may 14 +pl 62 + - make clean bf: remove lex & yacc files too + - added kludge in case measure too long + - added kludge in case of unconnected columns. + - kludged columns get error marker + - kludged lines get error marker + + +pl 61.jcn1 + - smarter + faster duration-convert using Array + - bf: mi2mu compilation/duration-conversions + - lots faster mi2mu, hopefully does type 1 too... +pl 60.jcn1 + - mi2mu handles non-quantified rests, try mi2mu -b wtk-i/fugue2.midi + + + +********** +pl 61 + - scales.ly bugfix: dimensions default to ((0,0), (0,0)) + - naming: PointerList->Pointer_list + - tied notes don't get accidental + - bf: crescendo size + - fixes: make_patch, + - bf: _"text" direction + - mailing list into lilypond.pod + +pl 60.mb + - set_flower_debug: Warning if -d is used when NPRINT is defined. + - Fixed several TeX details. vcenter renamed since it interfered + with LaTeX. Position of accents changed. + - New example; scripts.ly + - table_sixteen: added scriptdefinition (Lilypond breaks if a + script is defined without dimensions). + - bf: ifndef typos in p-score.cc, choleski.cc + - bf: Slur::do_post_processing(), whole notes caused SIGSEGV. + +(ascension break :-) +******* +pl 57.jcn4 + - mi2mu handles rests (quantified only) + - fixed configure buglet + - "!date" Fri May 2 02:18:12 MET DST 1997 + +pl 60 + - Request_register::get_feature(), tie direction, Slur direction + - lilypond output is now directly texable. + - make_website checks return status + +******* +may 5 +pl 59 + - Slur now into voicegroups, and take stems into account. + - bf: rest size in table. + - split Slur in baseclass Bow + - Tie, Tie_req, Tie_register + +****** +may 2 +pl 58.jcn1 + - bf: toccata-fuga-E.ly + +pl 57.jcn4 + - mi2mu handles rests (quantified only) + - fixed configure buglet + - "!date" Fri May 2 02:18:12 MET DST 1997 + +pl 58 + - lexer cleanup + - national chars in lyrics + - \stem 2; bf + - long comments: %{ %} + - *.ini mode bf + - bf: partial may be everywhere + - bf: meterchange not at start of measure + - some doc updates + - bf: stem too long if stem is down. + +pl 57.jcn3 + - dank je schat, voor wtk-i + - mi2mu tries to handle rests + - "!date" Thu May 1 02:34:04 MET DST 1997 + - maak je het niet te laat schat? + XXXX HWN + +pl 57.jcn2 + - small toccata-fuga-E.ly fixes + - \bar "||"; is now doublebar, "|." is finishbar + - collision hshift fix, with on-line assistance +****** +pl 57 + - lots of TODO doco + - text alignment bugfix + - bugfix Voice_group_regs::get_register_p() now is actually called too + - bugfix init of Text_item::pos_i_ + +pl 56.jcn1 + - toccata-fuga-in-E.ly, excerpts with real-life collisions + - \{l,r}{b,f}{toe,heel} --- using cmsy fonts... + - pedal.ly + +pl 55.jcn1 + - mi2mu man page + - make doc fixlet + - \[lr]heel \[lr]toe scripts (happy pedal studies, pa) + - lyric with width + - removal of some example files + +pl 56.mb: + - last duration fix + - makefile fixes + - space rest + - swedish note name update + +****** +pl 56 + - Massive Rest/Stem/Collision/Note_column rewrite: resolve +notehead/rest ambiguities and bugs. eg, [c8 r8 c8] + +pl 54.jcn1 + - standchen.ly: repeats; lyricii to end + - convert-mudela: help + usage + - fixed midi key/meter-change (triggered by martien.ly) bug + +****** +April 23 +pl 55 + - staff-side robustification + - script-on-rest bug + - doc update + - transpose syntax +****** +pl 54 + - bugfix Colhpos.cc::OK assert fail. + - Inclusion of MusixTeX MF files, + - detection of MF dir +pl 53.hwn + - stacked lyrics + - configure/make buglets. +****** +pl 53 + - spurious accidental bug. + - simultaneity check. + - added AUTHORS.pod + - convert-mudela auto from guess + - include -> \include + - change order of opening parse/init file + - Pulk_voice, Pulk_voices + - Request_column + - revised request-from-voice extraction. Now much faster + +****** +april 17 +pl 52 + - Buildroot RPM + - tex-prefix and tex-dir sep'd (here you are jan) + - convert-mudela framework + - Collision_register, Collision + - \hshift 1; input + - Features changed +pl 50.jcn1 + - LILYINCLUDE dir searched before DIR_DATADIR(?) + - lily reads from stdin again (but does not now when to stop) +****** +pl 51 + - transposition bugfix + doco + - LilyPond -> GNU LilyPond + - bugfixes for Staff_side and Note_column* + - wohltemperirt: complete + +****** +april 11 + +pl 50 + - merge rest / notehead. + - Staff_side as a base class for most "staff-side" symbols. + - version check + - Note_column_register, Note_column + - multiple scripts + +******** +april 8 +pl 49.jcn1 +Bugfix + - configure[.in], make/Configure_variables.make.in c++ (=doze fix) + - "configure; make" ok for doze, win32 target may be removed now + - win32/gcc 2.7.2 compile fixes -- why does this all compile + (without warnings, why can-t i even trigger warnings) under + linux/gcc-2.7.2.1? it's quite a tedious job fixing this + shit _on doze_ all the time. + * fixed #includes global-regs.cc, staff-info.cc, staff.cc + * key.hh:Key() -> Octave_key() + * added missing lily/include/input.hh: Input( Input const& ) + +pl 49 + - lsm template + - clef in cadenza mode. + - notename clear + - \command bla; for \meter, \clef, \octave etc. +******* +pl 48 + - notenames init + - Duration order -> grouping + - broken key s + - default octave + +****** +april 3 +pl 47 + - dynamic flowerlib + - Input mods: now use Source_file iso Sources + - makefile lib deps restructured + - make_website now produces in out/ + +pl 46 + - examples.pod + - LILYINCLUDE env var. + - push/popgroup + - website updated + - Swallow_register + - Lyric_register. + - Staff_sym_register + - user settable register config + - struct Input now used iso defined_ch_C_ + - Walker_registers and Staff_registers separated + - dynamic-reg -> hairpins + +pl 44.jcn2 + - doze configure/compile fixes + - doze make refixed + - faq + - install mudela manpage too + - RedHat spec lilypond.spec fixed + - target: rpm (make RedHat packages) + +****** +Mar 26 +pl 45 + - Removing unused Voice_regs & Voice_groups + - -O2 bugfix + +pl 44.jcn1 + - merged 42.3 42.jcn4 code trees (see stuff below) + - moving towards Mudela 0.1 (again) + * keyword "music" dropped for horizontal music + * keywords "\lyric" "\melodic" introduced, e.g.: + melody = \melodic { c c | g g } + * removed level of indirection: + - staff initialisable with music identifier list: + \staff{ global melody } + - \score and staffs alike + - gnu standard(?) help texts + - configure "creates" toplevel Makefile from make/Toplevel.make + +Bugfix + - fixed mi2mu + - write meter to track0 too... + - default octave + - new Sources in My_midi_lexer: sourcefile_p_ = get_file_l(): oeps. + (ain-t hungarian grand?) + +Examples + - updated for mudela 0.1 + +****** +pl 44 + - naming: _c_l -> _C + - pure parser, My_lily_parser + - ''a iso ``a + - Includable_lexer + - junk Input_file + - Duration in parser, Duration restructuring + - grandiose lexer hax. Flex should be fixed, really. + Lexer much faster now. + - opps. mi2mu broken + +****** +pl 43 + - transposition. + - $variable&@name + - warnings if incorrect mode + - missing scsii measure + - declaration used check. + - + +pl 42.jcn4 + - lily writes midi meter/key changes from requests + - mi2mu: + + write mudela 0.1 + + write bar change requests + + more tunable quantisation + +Examples + - half-new-menuetto.ly converted to mudela -almost- 0.1 + - new mi2mu of bach's wtk pre1/fugue1 + +pl 42.3 (jcn version) + - oeps, branched source tree + +pl 42.hwn3 + - const naming change (T const <-> const T) + - Mudela 0.1 (roughly the same as below..) + +pl 42.3 + - moving towards Mudela 0.1: + * all keywords must be preceded by backslash '\' + * explicit lexer switches '$' and '@' dropped + * keyword "music" dropped for horizontal music + * keywords "\lyric" " introduced, e.g.: + melody = \melodic { c c | g g } + * staff initialisable with music identifier: + \staff{ melody } + * chords: < c e > + * octavate ''c`` + * \meter{ 2/4 } + * \octave{ ''`` } + - configure sets CXX (to c++, commonly) +Internal + - renamed lexer.hh, mylexer.cc My_flex_lexer to my.lily.lexer.* + +pl 42.2 + - new lilyinput (Mudela 0.1) doc. +Examples + - new-twinkle.ly (in Mudela 0.1, hopefully) + +pl 42.1 + - further Makefile revamping. + - moved flowerlib + +******* +pl 42 + + +pl 41.hwn3 + - struct Lexer_prefs + - parser bug + - make uninstall + +pl 41.hwn2 + - make file rehack + - spec update + - make install + - detect TeX directory + +pl 41.hwn1 + - cygnus configure, + - updated versioning + - install.pod + +pl 41.jn1 +Bugfix + - doze compile +******* +pl 41 + - release + +pl 40.3 + - all of the above + - hw's configure.in + - p-name.xx fixes + +pl 40.hwn1 + - hairpin dynamics + - notename now as identifier. Parser/lexer cleanup + +pl 40.2 + - mi2mu --blonde-durations, --no-silly options. + - mi2mu starts to look promising, see examples +Examples + - pre1.midi.ly, fugue.midi.ly +Internal + - Duration handles blonde midi-durations + - More settings for Duration_convert + - lily writes meter too (ugh, howto?) +Bugfix + - mi2mu auto track number fix + - mi2mu / lily Midi_tempo fixed/added + +pl 40.1 +Bugfix + - lily midi output track 0 name + - mi2mu tempo fixed + - make out/make and out/make/Site.make in configure script! + - mi2mu double newline fix + + +****** +Mar 11 +pl 40 + - release + +pl 39-5 + - own versioning for mi2mu: 0.0.10 + - some file renaming mi2mu +pl 39-4 + - all of the above + +pl 39-hwn2 + - last bar bugfix +Internal + - simple dynamics + - experimental RPM spec. + - doco update. + +pl 39-3 + - all of the above + - m2m renamed to mi2mu + - better line breaking in mi2mu + - (somewhat broken) progress indicator for mi2mu + - mi2mu output === lily input (in names and durations, + always assuming voices > 1 though) + +Bugfix + - midi: note on/off only once per pitch per track + (sending all note-on events introduces cool mi2mu feature) + - make clean removes deps too + - mi2mu notename/accidental/octave, and key fixed + +Internal + - auto create of out-dirs, config headers, using tag file .GENERATE + +Examples + - stanchen.ly debugged + +pl 39-2 + - configure script help and in topdir again, duh. + - auto configure upon virgin make + - configured makefile stuff in make/out/ + + +******** +pl 39-1 + - doze target (for 16 bit dos xcompiler: gcc-go32) +Internal + - make/User.make; C..FLAGS sorted out +Bugfix + - make clean... + +pl 39 + - new make structure, featuring: + * top-level/sub-level build + * auto custom-library dependencies/build + * top-level/sub-level dist + * minimal(? can even smaller) specific Makefiles + * which makes for simple lib/exe module split (make/Template.make) + * integrated flowerlib + * all stuff into subbirs (make/Stuff.make) + * all headers into /include dirs (make/Include.make) + * all output into /out (executables into bin/) + * more make features, like make config, make help + * small lily lib + * lilypond-x.x.x/.version for toplevel lily version + * lilypond-x.x.x//.version for version (eg: flower) + * versioning using additional optional MY_PATCH_LEVEL + for easy make_patch + + - bin/cptogen + +Internal + - generic m2m header: m2m.hh + +Bugfix + - small fixes, make, dist, configure + +pl 38-5 + - all of the below, e.g. new filenames and new makefile + structure patches merged +****** +pl 38 + +Internal + - great filename renaming operation with - convention. + - printing methods for paper_def/lookup/symtab(s) + - untied all registers from complexwalker. Now registers are +intrinsically hierarchical. All walker communication is done via a +"top level" register. + +pl 37-3 + - m2m handles voices + - instrument, track_name, copyright/left stuff for m2m/ly + +Internal + - Midi_voice + +pl 37-1 + - text, key, tempo event in midi output/ly input + +Internal + - simple makefile structure, allows for multiple projects + +****** +pl 37 + + +Documentation + - language.pod as starting point for mudela devel. + + - Jan's patches: +Features + - m2m patchy --no-triplet option; + lilypond accepts m2m's real midi output (hand-add red tape) + - m2m output only valid durations, resync option wip + - m2m produces .ly output +Internal + - simpler and better naming for Duration* + - the great String renaming / index to base=0 change + - Track_column, Lily_stream + - Duration, Plet, Duration_convert taking load off duration calc. +Bugfix + - m2m duration calc + + + +****** +pl 36 + - Jan's patches: + - do MIDI rests cleanly. + - lily/m2m: time and tempo fixed for metric timing +Internal + - Midi_tempo + - m2m parses more midi stuff (all of bach-wtc); timing?? + - m2m recognises some commandline options +Examples + - fixed midi.ly + +******* +Feb 25 +pl 35 + - Register_group +Bugfix + - alignment of breakable items. + +******* +pl 34 + - better midi syntax. + - --midi,-M option. + - preliminary midi2mudela (/mudela2midi) converter: m2m (JCN) +Internal + - m2m sources: midi-*; (JCN) + - new Midi_walker, fixes several MIDI bugs. + - junked Midi_staff, Staff_column children, Midi_walker + - Midi_output + +pl 33-1 + - m2m parses midi +Internal + - Binary_source_file + - Source_file::error_str simplified +******* +pl33 +Examples + - Swedish notenames (MB) + +pl pre33-2 + +Bugfix + - midi pitch + +Features + - Jan's patches, see below +Bugfix + - some midi bugfixes. + +pl pre33-1 (JCN) + + + - midi output using pitches iso notename +Examples + - added midi output (some midi output files broken?) + - all melodic fixed (except for error.ly:-) + - midi.ly +Bugfix + - midiwalker line break + - empty/nonexistent include at top of ly + - midi #tracks + - midi pitch c0 + - midi poor man-s staff dynamics +Internal + - Midi_column, Midi_staff, Midi_walker + +pl pre33 (JCN) + - Jan's patches, see below + +Features + - simple plet notation (JCN) + - lyrics centred, but no fully suppored? (JCN) +Internal + - Midi_stream + - Mididef + - Midi_item, Midi_pitch, Midi_duration + - Midi_chunk, Midi_header, Midi_track + - preparations for midi output + - no exit upon context error (JCN) + - converted some "warnings" to errors; no output (JCN) +Bugfix: + - simple plet bugfix +Examples + - updated standchen, menuetto (JCN) + - new plet notation (JCN) + - plet.ly (parse and spacing tests) (JCN) + +******* +pl 32 +Features + - multiple meters, see rhythm.ly + - skip syntax/Skip_req + - score_wide_music: commands in staff now override commands in score. +Internal: + - command carnage + - Key_register + - Bar_register + - Meter_register + - meters now kept in baseclass Staff_walker + - Score_walker (to ease MIDI output) +Doc: + - Hungarian doco added to CodingStyle + +pl 32-1 + - music processing speedup + - website added to doco + - clef must *inside* music + - fixed spurious "beam too narrow" messages. +Internal: + - merge musical / non-musical staff_column + - musical/ non-musical requests + - Clef_register + - split up request.hh, Musical_req vs. Nonmusical_req +******* +pl 31 + +Examples + - Coriolan example (JN) + - standchen updated +Bugfix + - calcideal assertion bugfix +******* +Feb 12 13:55 +pl 30 + +Features + - better multivoice spacing + - move rest in multivoice staff + - errors in TeX output now warnings + - progress indicator + - music processing speedup. +Internal + - make spanner for staffsym; scrap Line_pstaff + - scrap simplestaff (Rhythmic_staff temporarily disabled) + - docxx 3.0 format comments + - split register source files + - hardcoded dimensions compile time + - Lookup::tex_hairpin +Bugfix + - non G-clef clefs + - script junking (2x) + - empty files + - beam::center (plet position!) + +pl 29 + - multiplatform Makefile (JN) + - context errors: bugfixes (JN) +******* +pl 28 + +Internal + - idealspacing slightly better for multivoice. +Doc + - Request_register +Bugfix + - Script.cc : float exception (MB) + - Request::Request(Request) copying of definition pointer (JN) + - cleaned dependencies for broken spanners + - stupid typo in Staff_elem::post_processing() + - init of hpos in PCol::PCol + - Word_wrap::solve() bug +******* +pl 27 + - preliminary WIN32 support (JN) +Features + - errors converted to warnings (JN) + - context errors (JN) + - As vs. as notename. + - WARNING: "melodic" stafftype will create the new Complex_staff! +Examples + - Lohman's Viola Quartet (JN) + - JS Bach Solo Cello suite II menuet (JN) + + +pl pre27 + +Features + - option --init + - last_duration_mode: default_duration is last duration entered + (\duration{\last}) + - syntax: grouping 2*4 3*8 + - preliminary multivoice support +Examples + - JS Bach's WTK example added. + +Internal: + - Text_reg and Script_reg +******* +pl 26 + - Documentation/lelie_logo.png + - 8-bit chars for input (see ltest.tex) (MB) + - quotes around string now optional +Bugfixes: + - unmatched ] (MB) +Internal: + - print/name methods of Staff_elem + - added Request_register + - Voice_group_registers, Voice_registers, *_register + - Complex_staff +******* + Jan 27 '97 +pl 25 + - other clefs added, keys typeset properly (MB) + +******* +pl 24: + - Lyrics (JCN) + - Commands in music-mode (an input feature) (there you are, Mats) + +******* +pl 23: + - TODO file inc'd + - cadenza mode. + - default extension, search path. + - error.pod,faq.pod + - Markers + - configure script + - inputfile name in output. +Internal changes: + - scrapped VPATH + - Make dependencies per .o + - Split Input_* parsing steps to enable marking +Bugfixes: + - unconnected columns + + +******* +pl 22: + - doco from mpp + - repeat signs + - | checks for bar in a voice (Barcheck_req) +Internal changes: + - naming (Hungarian notation, svec vs. Array) + - cleanup PScore, Score + - removed Staff_commands, plugging commands into Staff_column directly +Bugfixes: + - bug noteheadswap + - huge memleak fixed; unearthed lots of bugs + +******* +pl 21: + - scripts + - texts + - nplets (triplets!) +Internal changes: + - Move breaking stuff into a separate class Break_algorithm + - dependencies for Staff_elem's + +******* +Dec 23 +pl 20: + - updated doco to .pod + - include files from .ly +Internal changes: + - Rational for time measurement + - directionalspanner/textspanner + +******* +pl 19: + - grouping code: LilyPond can set advanced multibeams. +Internal changes: + - struct Moment + +******* + +pl 18: + - robust Staff_commands + +******* +pl 17: + - robust Input_commands + - merged Vertical_/Horizontal music + - PARTIALs with duration + - modularized lexer: multiple runs + +******* +pl 16 + - notenames configurable + +******* +pl 15 + - grouping code + - multibeams (simple) + +******* +pl 14 + - symtables from .ly + - Input_command + - Input_{score/staff} + +******* +Dec 2 +pl 13 + - Horizontal/Vertical music + - Input_commands diff --git a/Documentation/misc/CHANGES-0.1 b/Documentation/misc/CHANGES-0.1 new file mode 100644 index 0000000000..f5e3562839 --- /dev/null +++ b/Documentation/misc/CHANGES-0.1 @@ -0,0 +1,2141 @@ +August 1 + +VERSION 1.0.0 + + - scsii-paper: no wordwrap + - bf's: texinfo + +pl 85.jcn2 + - ONEWS -> NEWS-0.1 + - bf: zip: list of docfiles + - bf: install info + - bf's: rpm spec + - website ok + - mudela version bump -> 1.0.0 + - bf's: '[a-g] -> , + - bf: broken.ly + - ly2dvi fixes, (PC) + +pl 85.hwn1 + - search & replace: jan@digicash.com -> janneke@gnu.org + +pl 85.jcn1 + - website fixes + - debian fixes (thanks, Bastian Kleineidam) + - some (yet unfinished) doco + +********* +pl 85 +july 30 + +pl 84.hwn4 + - revamped install directions. +pl 84.eb1 + - key undo + +pl 84.hwn3 + - misc scsii fixes. + - doco fixes + +pl 84.jcn3 + - bf: titledefs without poet + - scsii fixes + +pl 84.hwn2 + - don't make key items if no accs present. + - Oops. Lyric spacing should go to the right (and not left) (thanks, PC) + - barnumbering break priority. + - bf: tied chords + - 16pt init for yodl-mudela + - split span-score-bar.{cc,hh} + - junked most experimental_features_global_b stuff + - revised AUTHORS.yo + - dot stuff. Added a Dot_column_engraver (thanks, Mats) + +pl 84.jcn2 + - ly2dvi fixes + - w32/install doco fixes + - mutopia fixes + +pl 84.hwn1 + - fixes for ly2dvi + titledefs (Peter Chubb) + - merge Span_dynamic_reqs too + +pl 84.mb1 + - MF: Added breve and longa rests. + +pl 84 jcn1 + - top website + - ps-to-gifs: TRANSPARENT_IS_BROKEN (ppc hack) + +pl 84.uu1 + - doco fixes + +************* +pl 84 + +pl 83.jcn5 + - bf: typo mudela-doc + - long getopt all the way + +pl 83.hwn5 + - doco fixes + - bf: initialise axis_ filed of script + - separate versioning for mi2mu and flowerlib dropped. + - split bin/ in buildscripts/ and scripts/ + +pl 83.jcn3 + - egcs ICE stuff. + +pl 83.jbr2 + - lily/midi-stream.cc: added appropriate MODE options to open + midi output as a binary file. This should be pretty harmless. + - lily/lexer.ll: added \r as white and black space to enable + W32 native editors. This also should be harmless. + +pl 83.jbr1 + - flower/lgetopt.cc: report method fix. (String + char needs to be + fixed) + + +pl 83.hwn4 + - stepmake := stuff + + +pl 83.hwn3 + - \property maxVerticalAlign, minVerticalAlign tunes vertical + staff distances. See input/test/vertical-align.ly + - bf: scripts over chords. (thanks, PC) + - revamped aligning stuff: Align_element is baseclass + for Horizontal_align_item and Vertical_align_spanner + - bf: Clef_item with _8 does new/del correctly. + - more file renaming -elem -> -element + +pl 83.hwn2 + - doco fixes (thanks, Lambert) + - tieydirection,slurydirection overrides ydirection (thanks, PC) + +pl 83.jcn1 + - bf: stepmake + +pl 83.hwn1 + - rm'd clean-embeds.sh + - rm'd \octave from all examples. + +pl 83.uu1 + - mi2mu output mudela 0.1.21 + - meter -> time_signature + - bugfixes for mi2mu, divide by zero error. (thx, JBR) + + +******** +july 23 + +pl 83 +pl 82.hwn2 + - \musical_pitch -> \musicalpitch (mudela 0.1.21) + - meter -> time_signature, + - \meter -> \time (mudela 0.1.21) + - moving around files : -grav -> -engraver + - doco fixes + +pl 82.jcn5 + - doc make fixes; stepmake 34 + +pl 82.jcn4 + - lots of doco build/install/website fixes + - junked some doubles from doco + + - mi2mu syntax to 0.1.20 + - bf: mi2mu col creation + - bf: stream << '\t', int + - bf: mi2mu version + - bf: font-body.ly + +pl 82.jcn3 + - bf's: diff/stepmake + +pl 82.jcn2 + - bf: slur blow + - tie/slur ydirection + - makeflags / diff fixes + +pl 82.jcn1 + - rejects: verbatim copy of Coriolan from 81.jcn2 + +pl 81.jbr2 + - Documentation/README-W32.yo: Additions to section 2 + +******* + +pl 82 + +pl 81.jbr1 + - NT fixes for release target + * stepmake/stepmake: %=--% => %=% in diff target + Cygnus make with MAKE_MODE=unix forces a MAKEFLAG of --unix. + This results in a ----unix switch being passed to package-diff. + This may break normal operation of this target. + * stepmake/bin/package-diff.py: added a do nothing option --unix +pl 81.jcn2 + - bf: abbrev + - found ugly slur bug + - egcs workaround + - more Coriolan fixes + - half-beam fix + +pl 81.hwn2 + - lots of vocabulary + - break_priority_i_ fixes: barnumbering, marginstuff, marks now work more or less + - wrote lilypond-docs RPM spec + - major brainsurgery: class Graphical_axis_group: + * derive Axis_group_element from Graphical_axis_group, + * derive Graphical_axis_group from Graphical_element + - junked input/minimal.ly + + +pl 81.hwn1 + - cleaned up parser.yy (removed \textstyle from parser, other stuff) + - Slurs have height too. + - typewrite textstyle + - added error rule to music. + - Documentation/pictures/ subdir + - Documentation/topdocs/ subdir + + +pl 81.jcn1 + - coriolan fixes. + +****** +july 16 + +pl 81 + +pl 80.jcn1 + - Coriolan: bulk remainder of strings + +pl 80.hwn1 + - junked coriolan-alto.ly + - the great Search & Replace + * Score_elem -> Score_element + * hanwen@stack.nl -> hanwen@cs.uu.nl + * Colinfo -> Column_info + * add () -> add_xxxx () + * Col_hpositions -> Column_x_positionso + - lily-proto.hh cleanup + - moved Dot_column creation. Dot bug fixed + - typos README-W32 + - ADD_THIS_TRANSLATOR uses templates now. + +pl 80.eb1 + - accidental transposition + + +******* + +pl 80 + - some make vs $(MAKE) bugs + +pl 79.hwn1 + - bf lily/VERSION depends on toplevel VERSION + - bf postbreak_only scripts + - Staff_side now is horizontal too + - rm'd \octave in scales.ly + +pl 79.jcn2 + - w32 support doco (JBR) + - bf: install info + - truncated some very long filenames (not bo length) + +pl 79.jcn1 + - bf: ps-to-gifs + - html fixes + - more italian (TDM) + - more coriolan + + +********* +pl 79 + +pl 78.hwn2 + - reversed some of the beyond-too-ugly hacks for script/staffside. + - bf: Axis_group_element::access_Axis_group_element () (2nd fix for Hara_kiri) + - more .bib stuff. + - more doco, lots of small fixes for .yo stuff. + + +pl 78.jcn2 + - bf: make docxx + - some doco/website fixes +i - screenshots for website + - fixed locale + - v78 + - w32 doco + +pl 78.hwn1 + - more bib fixes + - uniformised virtual accessors for Score_elem children. + - bf Hara_kiri seg fault + - changed left == right spanpoint assert into warning + - changed Lyrics.textstyle to Voice.textstyle where appropriate + +pl 78.jcn1 + - counter fix + +************ + +pl 78 + +pl 77.hwn1 + - Key transposition (MB) + - move .dstreamrc to dstreamrc + - make website fixes. junked z.yo, language.yo + - split off computer stuff from engraving.bib + - articles from CMJ added to computer-notation.bib + - doco fixes + - syntax of \skip and \partial changed; take only single durations + + + +pl 77.jcn2 + - mark placement + - w32 doco + - html-footer: (PACKAGE)_COUNTERPATH + +pl 77.jcn1 + - doco, bib fixes + - fixed \mark A; \mark 12; + +pl 77.hwjc + - dropped perl + - py fixes + + +pl 77.uu1 + - \textstyle obsoletized, use \property Voice.textstyle now. + +******* +pl 77 + - bf: install info + - bf: key-grav.cc: ambiguous conversion + - bf: mudela.yo glossary em() -> \emph{} + +pl 76.jcn1 + - irix compile install fixes, .bib stuff (HWN) + - bracket bit lighter + - brace/bracket placement + - minor fixes in key code + - small website fixes + - invocation mudela-book + - try at bracket/brace placement + +pl 75.mb1 + - Introduced real key names, \key e; gives E major! + - Previous use of the \key command now called \accidentals, + \accidentals fis cis gis dis; gives E major. + - Support for special keys with different accidentals on + different octaves, \specialkey \accidentals Fis Bes gis aiss'; + +********** +pl 76 + - website examples: + * Thread -> Voice + * 18 -> 19 + * type /consists Engraver vs Line_engraver stuff + - bf: mutopia-index + - to relative: twinke-pop + - bf: clef-grav: null pointer assignment + - ran convert-mudela + +pl 75.jcn3 + - minieme fixes (HWN) + - bf's: node() names have changed: Mudela Book/ Convert Mudela + - bf: lilyponddefs.tex: removed \fi, added braces + +pl 75.hwn2 + - bf lilyponddefs.tex: added \fi to \ifs + - convert-mudela in python + - mudela-book in python. + - bf memleak Score_elem::do_brew_molecule () + - bf array bound read String_convert::split_arr + - bf free mem read Item::Item (Item const &) + - bf memleak Midi_walker::do_{stop,start}_note () + - bf memleak Spanner::do_brew_molecule () + - bf plet-engraver memleak + - checked input/bugs dir. + +pl 75.hwn1 + - junked octave (mudela 0.1.19) + - more .bib stuff + - doco fixes. + +pl 75.jcn2 + - binary releases: + * make deb + * dpkg 1.4.0.23.2 + * debhelper 0.96 + * /usr/bin/db_*: remove -p from install options (urg) + * make rpm + * make zip + - path to nice lilypond.info (must have a go at auto-nodes): + * mv'd Documentation/man/lilypond-info.yo -> Documentation/topinfo.yo + * included mutopia as example + - bf: gifs: $(wildcard) + - leave tarball in out/ too, after 'make release' + - mf-to-table: --package + - typo configure.in + - nt make fixes (JBR) + +pl 75.hwn1 + - clef 8 fix (AG) + - junked octave (mudela 0.1.19) + - more .bib stuff + - doco fixes. + +pl 75.jcn1 + - dropped mf/Rules.make + - dropped target doosdist + - dropped lilypython/pythonblurb + - --package rest of python exes + - packagepython/package-diff fixes + + +********** +pl 75 + +pl 74.jcn5 + - lost of (step)make fixes + - 'make release' + - --package + +pl 74.mb1 + - Fix ":|:" that spans several staffs + - bf: bar.cc, table of breaks + - bf: engraver.ly, Complete the addition of ChoireStaff + - bf: lilyponddefs.tex, placement of ":|". + - Cleanup clef-item and clef-grav, prepare for dictionary + of clef names. + +pl 74.jcn4 + - cygnus fixes: doco, compile, install + +pl 74.jcn3 + - packagepythonified genheader + - stepmake 21 + +pl 74.jcn2 + - renamed: ../redhat to ../RedHat + - renamed (or huh, was this a typo?): + ../sourcetree -> lilypond-x.y.z to ../lilypond -> lilypond-x.y.z + - what about ~/rpms; see stepmake/Variables.make? + - README.txt + - debashify: zet-lily (HWN) + - www, yodl, stepmake fixes + - ls-latex fixes + - mudela.yo fixes + +pl 74.jcn1 + - mudela.yo fixes + - bf: add-html-footer: duplicate + +********* +pl 74 + - bf: ps-to-gifs fix + +pl 73.jcn2 + - irix configure/link fixes (HWN) + - untested fix for "^\f" (HWN) + - add-html-footer: bgcolor=white + - m.yo: successful 2tex and 2html + - ps-to-gifs additions and fixes + - bf: --output + - (step)make targets: + * diff + * help + * rpm + * zip + - yodl-1.30.pre4: handle mudela(options)(mudela) + - small m.yo example for mudela.yo + - crude tex2yodl in stepmake + - mudela from stdin: default to filter behaviour + - allow lelie to act as a pseudo-filter --output=- + - fixed faq.yo + - atvariables + - bf's: module-deps + - bf's table-to-html and invocation + - small doco fixes + +pl 73.hwn1 + - more doco + - got rid of weird <> semantics + * Ties_engraver, Note_heads_engraver + * depracated \multi + * depracated Thread context + + - wtk1-fugue{1,2} now in relative mode. + - don't create Rest_collision, Collision if no more than one + collider (interpreting should be faster, less mem usage) + - depracate Line_group_engraver, must use Line_group_engraver_group + + +pl 73.jcn1 + - tiny topweb.yo fixes (added 'Documentation/out-www/' to some urls) + +********* +pl 73 + Yodl developent: + ftp://pcnov095.win.tue.nl/pub/yodl/ + http://www.digicash.com/~jan/yodl/ + - removed BLURBS from makefile + - stepmake pl 16 + - To Yodl: + * *.pod -> *.yo (should fixup pod 'manpage' legacy) + * dropped pod2* config stuff + +pl 72.hwn1 + - count "constraint off" as degeneracy + - zet-lily stuff. + - bf: add Meter_engraver + - bfs: tutorial + +pl 72.jcn3 + - Documentation/man texinfo-> YODL! + +pl 72.jcn2 + - more texinfo: + * texi2html workarounds: junked man/*.pod + * Documentation/man: pod -> texinfo + - Coriolan: viola part + +pl 72.jcn1 + - doco/mutopia/website fixes + +********* +pl 72 + +pl 71.jcn4 + - try at texinfo: + * lilypond.texinfo + * stepmake pl 13: texi2man + * lilypond.1 now generated from texinfo + * lilypond.info + +pl 71.hwn2 + - changed QLP asserts to warnings; now you can see the +shabbyness of the QLP code + - ChoireStaff context + - more tutorial doco + - mudela-book: name output files to per section and chapter. + +pl 71.jcn3 + - bf: convert-mudela: added StaffGroup + - bf: various .ly: (WhyIsThis; we'll drop a_"bla" and use '_', no?) + - stepmake pl 12 + - bf: abbrev + beam (urg: internote y dim bug) + - debian conffiles (AF) + +pl 71.hwn1 + - vocab fixes + - more tutorial stuff + - quart -> fourth + - depracated contexts with _ in name (mudela 0.1.17) + - bf: don't crash if default context can't be found + - distinction between global and local \header block. + +pl 71.jcn2 + - msgfmt check + - rpm: crude fix for input dir (urg: should get doc on rpm spec; + why is that so hard to get hold of in plain text?) + - found (bit undocumented) sticky abbrev mode in stem-grav: + c8:16 c: c: + * bf: enable disabling + * disabled sticky abbrev req + - urg: transposing for midi (should fix audio-items) + - sticky abbrev req: a8:16 a a a8: + - bit more coriolan + +pl 71.jcn1 + - added PATCHES to web page + - rpm-dist, doos-dist, show-latest to step + +******** +pl 71 + - bf: po install + - fixed somewhere: space between bar line and first note [HWN] + - bf: DOTTEXT + - bf: (don't) install libintl + - configure fix for irix tr + - bf release.py + - stepmake-0.1.9: fixes make install, rmp-dist + - bf: mf-to-table + - make-patch: lily-diff + +pl 70.jcn6 + - make htmldoc defaults to out-www + - moved some python stuff to stepmake-0.1.8 + - aux config scripts from stepmake + - stepmake-0.1.7 as ./stepmake: drop versioning on sub-package dirnames + - po fixes + - computer-forms.el + +pl 70.jcn5 + - bf: Documentation/make html + - bf: coriolan ... almost there + - bf's: lilyponddefs: (fixes make website) + * moved errordefs (mmm, perhaps \input's should have been moved...) + * moved def of interscoreline + * moved def of setdynamic + - stepmake 0.1.6 + - include fixes + +pl 70.jcn4 + - configure stepmake too + - make dist recurses into stepmake + - stepmake-0.1.5 + +pl 70.jcn3 + - make; make dist work (without packaging) stepmake-* + - mv'd outputter* tex-outputter* + its not so handy to have files with the same prefix as our out dir :-) + - verbatim included stepmake-0.1.4 + - DOTTEXT->.txt + - verbatim included stepmake-0.1.3 + +pl 70.jcn2 + - changed 'current' to 'lilypond' in scripts that only i ever use... + - tenuto shorter, thicker and follow into staff + - computer{.data,-forms.el} + - mark + - by default don't make libintl + - make install for libintl + +pl 70.jcn1 + - generic make fixes + +******** +pl 70 + +pl 69.jcn4 + - included libintl from gettext-0.10 + - fix: staff-bracket on one staff too + - bf: lilymake/Rules + - generic lily-make-0.1.0 package; shared as example with lilyx-0.1.0 + - junked automake stuff from aclocal.m4 + - bf: BASH scripts + +pl 69.hwn1 + - standardised virtual accessor naming for Requests + - doco updates. + - bf: tied accidentals. + +pl 69.jcn2 + - now DATADIR = datadir = /usr/local/share/lilypond ... + - bf's: DATADIR/datadir: by default: /usr/local/share; '/lilypond' + must be added whenever necessary + - bf: begin/end html for BLURBS; junked html-accents... + - html-accents + +******** +pl 69 (june 2) + - bf: table-to-html: convert_html + - bf: added fingerfont in fetdefs.tex + - crude fix: fetdef repeatcolon + - gallina.ly to relative octave mode (MB) + +pl 68.jcn3 + - bf: libintl.h include + - readded: DATAFILES =.*data (too late, computer vocab missing...) + - span-score-bar: + * don't set piano braces that span less than two staffs + * don't set staff brackets that span less than one staff + - bf: abbrev (internote dim) + - more coriolan, hara-kiri + - add arcs to bracket height to avoid colliding of brackets + - HAVE_GETTEXT + - computer.data: modest start of computer-related vocabulary + - configure (localdir/datadir) fixes + +pl 68.nenn1 + - fix for postbreaks past line_group + - bf: harakiri: set empty + +pl 68.hwn1 + - use AFM iso autogenerated table. + - more bits of tutorial + +********* +pl 68.jcn2 (may 29) + - bf: configure.in localedir/datadir (urg) + - libc-extension.cc: vsnprintf + check + - bf: blurbs + - @BASH@ for scripts that are actually (still...) bash iso sh + - check for bash + +pl 68.jcn1 + - gettext/intl checks; (AO) + - bf: meter-switch + - COPERTINA + +pl 68 + - AFM file stuff: afm.cc, afm-reader.cc, mf-to-table.py + - removed c0 position from get_staff_info () + +pl 67.jcn2 + - grace example + - bf: sticky plets + - bf: s0 + - bf: twinkle.ly + - junked implicit to-string conversions + * now used Scalar for all explicit implicit conversions + * moved implicit-conversion String constructors to to_str (...) + - _f with Strings + - bf: BLUB: re-added empty line + - bf's: reincluded: tar-docxx.sh, topweb.pod.in (me too!) + - po: unification/breaking-up of (some) messages + - crude get-lily/build-lily scripts + - make targets "po-update" "show-po-update LANGUAGE=xxx" + - handier internationalisation funcs _(), _f () iso macro + - String_convert::form_str (fmt, ...) + + +******* +pl 67 (may 27) + - multiple font sizes. See input/test/sizes.ly + - w32 blurb by Dominique Cretel + - bfs faqs + - cleaned Identifier further; canonical accessors + +pl 66.jcn7 + - bf: hara-kiri clefs: (the "u" is "\unknown"; how to fix this?) + - bf's: make website + - better configure language message + - bf: lilpond.spec + - bf: configure/localedir + - internationalisation: po/* + - distribute mutopia/ in binary rpm too + - FLAPTEKST + - "generate" all debian conffiles in out/ + - BLOEP; and BLURB substituted by configure throughout doco + +pl 66.jcn4 + - bf's standchen + - website fixes for .fly + - target doc++; tar-docxx fixes + - topweb fixes + - configure check for pod2html 5004/5003 + - switch init file on extension (some new ones): + * init.ly: normal structured Mudela + * init.fly: simple Mudela (for on-the-* without tape ly's) + * init.sly for simple init (no properties,scripts,midi) + + - bf: stem with flags (forgot internote dimension) + - bf's mutopia (urg, properties) + - String_storage: parse string identifiers (i didn't do it, nobody saw me do it, you can't prove anything) + - scsii-prelude: urtext and suggested slurs separated + - converted twinkle, kortjakje, standchen, preludes to relative + - conflily -> zet-lily + - -Q --find-quarts option + - bf: add-html-header: mailaddress () iso mailaddress + - bf: show-latest looks at MY_PATCHLEVEL too + - fixes scsii + + + +*********** +pl 66 (may 18) + - junked literature.pod (we now have the .bib file) + - bits of mudela.doc + - other-packages.pod -> other-packages.bib + +pl 65.jcn3 + - print_dimen: don't print "NaNpt" + - fixed Coriolan, added "instrument" and "instr" + - MIDI favours property "midi_instrument" over "instrument" + - Bar::do_height iso brew_molecule hack: not quite yet... + - stem/beam: more stuff runtime + * beam-dir-algorithms + * beam-stemlengths: take unnatural dir into account + * natural stemlength + * forced stemlength shortening + - bf: Bar: don't make molecule if invisible; fixes hara-kiri + - robustification of MIDI: never return "", always return sane + string and print warning + - bf: typo Key_change_req::sharps(); fixes MIDI + - scsii: new relative octave fixes, gigue + +pl 65.jcn2 + - included some auto-generated mf files for MikTeX (doos). + - hara-kir: nicer set-transparent + - relative.pod: doco'd blonder relativeness + + +pl 65.jcn1 + - staff-margin-engraver + - blind scsii fixes for new relative mode + - bf's: hara-kiri-* + - jumps in topweb.pod + +********* + +pl 65 (may 15) + - fixes for template instantiation (AO) + - junked standchen-easy, + - mudela 0.1.15: deprecate \duration, junked \octave relative + - small doco fixes + - moved data from Melodic_req into Musical_pitch (analogous to + Duration and Rhythmic_req) + - implemented \relative c' { .. } and associated Relative_octave_music + - junked \octave relative; + +pl 64.jcn2 + - simple compile fixes + - bf: beam:stemlens:knee + - hara-kiri-* + - bf: ctags + - preludes-3.lym4 + +********* +pl 64 (may 13) + +pl 63.jcn3 + - beam stemlength stuff runtime + - dropped lq for beam-stemlengths, fixes [d d d] [d g d] + - ugly sed fix for commas in .ly.m4 + - beam damp corrent fix + - scsii: small fixes + - preludes.ly; dropped silly preludes.tex + +pl 63.jcn2 + - vocabulary on website + - data-to-html.py + - bf: beam damped-slope correct + - bf: make website + - some preludes-* fixes + +pl 63.jcn1 + - "relative" sizes for titledefs + - bib2html/man2html urls in INSTALL.pod + - auto-generated feta stuff in doosdist + - bf's: make dist, docdeps + - bf's scsii + +************ +pl 63 (may 11) + + - non_fatal_error () (should use!) + - Mozart Horn concerto 3, horn part + - bf: plet-spanner + +pl 62.jcn11 + - bf: beam::set-stemlen:iterations + - knee-bug.ly + - use knee in menuetto-ii + - bit on slope damping + - some bf's and doco + - bf's scsii + - scsii: bf' new: sarabande + - bf's allemande, courante + - bf: knee: stem through beams + - bf: too high beams + +pl 62.hwn1 + - bf jcn8: deep copy Scope (ughugh. I want GC!) + - cleaned Identifier + - mudela 0.1.14 'a -> a, + - class Scope + - .bib updates + - key robustifiction for extreme octaves + - ly2dvi 0.11 + - energy "normalisation" removed. + +pl 62.jcn8 + - beam: knee input/test/knee.ly + - vimrc init for lily + - errors display column number too + - scsii: bf's, new: allemande, courante + - looked at lyric lengthen "mir________." (eerste weigering) + - beam: knee [c \stemdown c' \stemup 'c] + - expressions parsed at identifier_init + - bf: slur/stem/whole x-adjust: + * use note-col width iso mean note-witdth + * note-column:width () + - now string variables in paper too -> mudelapapersize + - paper_def: real dict -> identifier dict + - My_lily_lexer: identifier dict stack + - init paper and a4 stuff + - \include \string + - all rvalues from parser var pool -> access rvalue as \rvalue + - string variables + - ly2dvi 0.10.jcn1 + * mudelapiece, mudelaopus (ugh, fix) + * textheight + - more titledefs + - bf: table 20 typeface widths + - bf: toplevel/*.txt + - bf: ugly Documentation/mutopia fix (should rename dir to Mutopia/ ?) + - bf: make examples + - www.digicash.com/~jan/lilypond + - make website fixes + - ambiguity fixes in .ly's + - bf: relative-octave warning + - relative-octave: guess if ambiguous + - ambiguity warning for relative mode + - scsii: prelude + - bf: slur gap + - bf's: scsii: menuetto + - .txt -> $(DOTTEXT) + - make website fixes + - .txt fixes + - bf: typo make-patch + - bf: *dist.sh cleanup + - bf: release.py + - bf: make/Targets doc (removed .txt extension) + - rpm-dist.sh + - make doos dist fixes + - doos-dist.sh windoze dist script + -- removed useless spacing hack at spring-spacer.cc:692 + - bf: los-toros: do multi-bar rests (setting SkipBars = 1) + - scsii-menuetto.ly -> menuetto-urtext.ly, -cello.ly and -alto.ly + - bf: \octave c'; for relative-octaves + - bf: Documentation make + +********* +pl 62 + - no-touch hak. + - bfs: multi measure rests + - fixed the website. + - add extra space after breakable columns. + + +pl 61.jcn8 + - mudela relative octave feature: + * Documentation/relative-octaves.pod + * \octave relative; + * lilypond -f for automatically finding new relative quote positions + (sorry, fully automated convert is too complex) + * mutopia/ltor.ly: octave quotes reduced from 511 to 59 + - better conflily + - bf: abbreviation-beam-engraver: set beam::multiple_i_ + - bf: open_abbrev_parens + - dotted/dashed slurs/ties + - fixed-up scsii-menuetto; use dotted-slurs + - slur_thickness runtime + - bf: typo lilyponddefs: elevendefs + - moved hard-coded slur parameters to runtime + - make-patch -r: diff against latest release + - allow semicolons after paper_identifier and \include + - params.ly: parameterised some paper vars + - bf: beam quantise for slope = 0 + - interbeam (mult>3) open-up to paper-def to paper! + - "implemented" Paper-def::staffheight + - simplification + bf bezier clipping + - vandale fix + - moved doco from paper*ly to fonts.doc + - papers with expressions + - paper20.ly: rewrote precalculated values as expressions + - simple expressions in mudela (paper-body only) + - beam_thickness centralised and run-time... + - \nobreak + - bf: beamquantise: never sit if mult > 1 + - bf: broken slur y-offset (not!) + - pagelength hack in tex/headers + - alignment of bracket (in span-score-bar.cc) + - boolean *break_b to continue break_penalty_i; maar nu... + - removed paper20 includes, \paper_twenty from examples + - dropped latex files + - renamed standje, standchen. + - parser accepts range of mudela-versions + - Mudela_version + - String_convert::split + - bf's: los-toros-oboe + - braindead Break_req with penalty; junked Disallow_break_req and + Break_force_req + +pl 61.ag1 + - implemented octave-shifted clefs. + +******** + +pl 61 + - bf: mudela-book error msgs + - don't dist feta-tables. + - bf: mf-to-table, deps[0] catch + - reworked initialisation parsing logic; Got a no-redtape mode + for free + - 20 pt staffsize now default + - dependencies for LilyPond (-d, --dependencies). --debug moved to -D + - (c) 1998 + - ly2dvi 0.10 (JAF) + - changed \begin[options]{mudela} to \begin{mudela}[options] + - more WWW hacks. + +pl 60.jcn2 + - minor adjust for asymmetricity of beam symbol + - added TEST beam quantisation; see input/test/beam-pos.ly + - removed some empty .cc .hh + - Grandstaff -> Grand_staff (After [Gerou] and Harvard Dictionary of + Music) + - bf's: slur and tie post-processing + - cleaned-up bow: get encompass + - cleaned-up beam-yspan and beam-leftpos quantisation + - misc.cc: some funcs to get lower and upper bounds from array of values + - interval.*: Slice (Interval of int) + - added some doco to beam.cc + - removed some x,y by-ref passing in Lookup + - cleaned-up beam-yspan quantisation + - cleaned-up slur get encompass + - configure: --disable-optimise for compile without -O + +pl 59.jcn4 + - bf: beam quantise + - bf: sticky plet bug + - bf: chords in beam + - bf: typo beamquantisaton + - bf: don't blow_fit infeasible bows (x_i < x_0 || x_i > x_n) + - bf's: beam/stemlengths, beam-bug [c8 c16 c16] + - bf: placement broken tie + - yet another try to raise bar-number + - bf's: bow tangent clipping, allow higher bows + +************ +pl 60 + - mats patches: use Latex font stuff. + - fixes to the .59 patch release (jcn) + - make website|examples target + +pl 59.jcn3 + - bf: preludes-5 + - no inline compiler warnings by default + - bf: gcc 2.8 compile bow.cc + - moved functions with loops from varray.hh to varray.cc + - bf: minimum length for tie + - slur clipping standard + - bf: second broken slur minimum length + +pl 59.jcn2 + - added some to .dstream + - bf: second part of broken slur + - slur encompassing noteheads adjust + - bwv'd preludes + - bf: make-patch -d + - doc'd rerunning of autoconf + - rest of real standje (rename and move simplified standchen to + input/test?) + - bf: clipping + - bit better bar number placement + +pl 59.jcn1 + - more INLINE + - bf: multi-measure rest + +pl 58.jcn7 + - los-toros: do multi-bar rest + + + +*************** +pl 59 + - ly2dvi 0.9.hwn1, -K switch, + - doc: moved manpages in separate directory. + - do WWW stuff via make + - mutopia-index.py + - ly2dvi 0.9 (JAF) + - multi platform build fixes + - junked embedded switches, embedded MF, obsolete TeX stuff + - junked virtual matrix storage: inlined most matrix computation, + speed increase of 30% + - junked taupindefs, eglerdefs + - rm'd taupin/egler from INSTALL + - doc: engraving.bib, colorado.bib + - input hierarchy. + + +pl 58.jcn6 + - multi-measure rests: moved acknowledge from timing-translator + to -grav + - slur clipping experimental... + - bo to b + - always announce multi-measure + +pl 58.jcn5 + - bf: reset plet after reading mmrest + - try at not generating moments... + - Multi_measure_rest 'symbol' + +pl 58.jcn4 + - try at multi-measure rests: part.ly + - bf's: slur get_encompass + - bf: slur clipping + +pl 58.jcn3 + - experimental (--test) clipping of too high or tilted slurs + - nicer slur control output and ps code + - bit thicker and round-capped tuplet bracket + - bf: slur.cc: RESIZE_ICE + +pl 58.jcn1 + - varray.hh bezier.cc, slur.cc patches to avoid gcc 2.8.1 ice + - some inlining fixes + - configure: use -O to enable inlining + - included and fixed new make-patch.py + - bf: Mutopia.make + - bf: offset: operator - () + - ugly hack bezier: do blow_fit twice + - bf's: bezier: rotate,translate + +*************** +pl 58 + - more *.make hacking + - bracket fix (AG) + - clef fix (PC) + +pl 57.jcn1 + - reincluded test/bow.cc + - promoted Bezier bows to standard + * bf's: broken slurs + * some bf's: verneukeratificering van JCN code + * some bezier slur doco + * calculate Ties with Bezier bow + * junked tex-slur.cc + * junked ps-slur code + * junked height-only slur-correction + * lots of bezier/slur fixes + * bezier:blow_fit + +************** +pl 57 + - verneukeratificering van JCN code. + - lots of updates on our own makefile system. + - junked automake & documented it + - put rods into Spring_spacer too. Much cleaner + - bf: weird spacings (enge floats) + - bf: too many constraints added. + - smarter constraint check + - bf: table16 fontsize. + + - 56.jcn1's empiric computer science. + - debian patches (AF) + - solaris/irix patches (AO) + + + pl 56.jcn5 + - bezier and slur: cleaning and fixes + - bf: removed silly experimental beam feature + +pl 56.jcn4 + - reintruduced slope in bug [c8 c16 c16] in favour of stemlen bug... + - staff-side: accent half line higher + - reincluded silly los-toros latex file + - bf's: bezier.cc,bow.cc, mat.hh: rotate + - bf: bezier slur: handle broken slurs + - bf: beam + - dehairifications of bezier.cc + +pl 56.jcn3 + - bf's: offset multiply, matrix rotate + - dropped los-toros latex file + +pl 56.jcn2 + - even nicer excentric slurs; + - input/slur-bug.ly + - los-toros with barnumbers ;-) + - nice version of height-ajust bezier slurs (see sleur.ly --test) + - bf's beam: + * slope in[c8 c16 c16]; + * allow no INTER position for normal quantising + +pl 56.jcn1 + - bezier curves with raaklijnen + +pl 56.ag1 + - `Makefile.am.wild's now should work correctly with VPATH (AG) + +************ + +pl 56 + - more dutch vocabulary + - Barnumber FAQ added + - bf: abbrev over whole note. + - feta: reverse turn. + - bf: rod distance + - bf: local key clashing + +*********** +pl 55 + - bezier check and ajust for slur height + - better slur height ajust + - DO chmod 755 *test/*sh + - bf: discretionary of || + - bf: scripts within staff + - NOT Grandstaff -> Grand_staff (yet?) + - bf: cresc. decresc. height lookup.cc,init/table* + - bf: staff-symbol (script placements) + - staff-group-bracket + - bf's preludes, los-toros + - nicer trills + - adjustment slur extend + +********** +pl 54 + - bf dynamic_grav + - bf accidentals with key change + - bfs with command-items in non-breakable columns. + - typos (thanks LM) + +pl 53.jcn1 + - two new BUGs + - preludes-* with trills + - nicer trills + - fixed ugly slur extend bug + - first try at symphonic work: (start of) Coriolan + - fixes: los-toros + - test/ with some stupid tests + - bf, again midi-output + - --no-timestamps options for lily/mi2mu (to enable make check targets) + - removed doubles in lilypython + - smarter prev_version for make-patch + +*********** + +pl 53 + - bf: c4 \< c4 \< + - bfs of spacing stuff + + +pl 52.jcn6 + - make check target + - moved flower/test to flowertest + - dist fixes + - flower no longer independent package + - bf: GNUmakefile + - bf's: configure: debugging (default) /profiling + - bf: Rational iface (fixes MIDI output) + - bf: non --srcdir configure + build with GNU make (ugh) + - ugh: autowildflower + - bf's: invoking wild-perl + - bf: ugh: staff-side.cc: placement height + - bf's: gnu 2.7.2 link (huh?, everyone using 2.8?) + - make-patch: default diff against (copy of) srcdir + - bin/conflily configures in ../build + - GNUmakefiles that do: + * auto-update of Makefile.am.wild + * auto-switch to builddir + - bf's: configure --srcdir + - fixes for los-toros/twinkle/test-lyrics + - latex file for los-toros (ugh) + - staff-side: symbols closer... + - half fix of midi output? duh. + - oboe1 los-toros + +************ +pl 52 + - split up elem-group stuff. + - per line widths + - miscellaneous fixes by WL. + + +pl 51.jcn1 + - bf's: dutch->nederlands + - Cygnus b19 compile/link fixes + +************ +march 27 +pl 51 + - changed dutch -> nederlands, german -> deutsch etc. + - norwegian (AG) + +pl 50.jcn4 + - fixes for cygnus' gnu-windows32 beta19 + be sure to compile with -fno-rtti + - proof of concept for automated updating of Makefile.am + see mi2mu/GNUmakefile (still somewhat clumsy) + - mv'd both config.hh.in to acconfig.h + - copied printing/debugging/optimising options to flower conf + - (some modified) fixes from AO + - beginnetje los-toros-oboe + - bf: DIR_DATADIR + - bf: trills + +************ +pl 50 + - deprecate autowild + - --srcdir fixes + - ly2dvi 0.8 + +pl 49.jcn2 + - static (default) and/or shared libs flower and lily + - patch from AO 'libtool 1.1.1' + - mf: trill-symbols: feta-slag.mf + - shared libs (ugh: hardcoded switch in configure set to static) + - some fixes: denneboom.ly, standje.ly/standchen.ly + +******** +march 19 + +pl 49 + - parser assert changed to warning + - fix stdin reading + - small jcn fix + - changed unbound Spanner from assert to warning + - forced breakpoints + - add a nowildcard: stmt to wild-perl + +pl 48.jcn5 + - ugh: double parser/lexer: + be sure to rm lily/parser.cc lily/lexer.cc or bin/clien + before re-running autowild! + - V.RSION + - bin/clien bin/meek + - bf's: flower/VERSION, flower/config.hh, lily/lexer/VURSION + lib/config.hh bin/convent-mudela + - lost of automake fixes + - automake + +****** +march 12 +pl 48 + - Pitch_squash_engraver makes Rhythmic_staff possible. + - some fixes to buildscripts for sgi irix + - misc. patches (WL) + - move away from libg++: rolled own Rational class.. + - don't make gif files Documentation/ by default + - ly2dvi manpage (JAF) + - ly2dvi 0.7 (JAF) + - more clefs. (MB) + +pl 47.jcn2 + - bf: interbeams and beam-stemlengths for size != 16 + - bf's: preludes + - more introduction + +pl 47.jcn1 + - voice{one,two,three} defines + - preludes-*: fixes, junked multi, broke-down score-block + - mudela-book: added center option + +****** +march 6 +pl 47 + - Abbreviation now a separate item. + - bf'd some gcc 2.8 warnings. + - bf'd spurious space in autodep. + - more clefs (MB) + +pl 46.jcn1 + - start mudela introduction + + +pl 46.jcn2 + - bf's: preludes-* + +******* +feb 27 + +pl 46 + - span-bar at upstep. + - bf: \score { \score_identifier } + - tenor clef (MB) + +pl 45.jcn2 + - preludes-4,5,6 + - bf's denneboom (oeps, see loop) + +pl 44.jcn7 + - text-item.cc: try to get fingers just above note... + - set minimum space between columns + - bff: mf/Makefile out/*log required: new .ly .tex's with make-dist :-( + - bf's midi ascii-debug output + - bf: property instrument + +******* +feb 12 +pl 45 + - bf: translator switching + - SunOS and IRIX patches (AO) + - preludes bugfixes; preludes.tex ugh (JCN) + - shared lib numbering (AF) + - various fixes for debian (AF) + - ly2dvi .6.jaf (JAF) +pl 44.jcn6 + - bf: crescendo.cc: bigger and use bar_size + - slur: guess extra height for height limit for extending notes/stems + - ps: adjustable slur height limit, bf crescendo + + +****** +feb 6 +pl 44 + - ly2dvi 0.6.hwn1 + - ly2dvi 0.6 (JAF) + - use ly2dvi for website + +pl 44.jcn2 + - fingers default to above note + - preludes-2.ly + - parser: fingerings + - preludes-1.ly + - bf: denneboom.ly + - preludes-3.ly.m4, standje.ly, preludes-4.ly + - make rule for macro ly-files + - pletvisibility (init/property.ly): + * default no bracket with beams + * invisible plet bracket feature + - finger dir in text-def + +******* +feb 2 + +pl 43 + - bf: broken Plet_spanners + - more GNITting + - avoid some more global ctors, for NeXTstep + - some NeXTStep patches from tiggr + - don't do overstrike/bold chars in textfiles + + +pl 42.jcn2 + - bit hesitating start of mutopia + - bf: don't try to typeset unterminated plet + - separately sticky plet durations: "c4 c4*2/3 c8 c4*1/1", ok Mats? + - denneboom.ly (half-baked version) + - indent and shape, see ^ + +pl 42.jcn1 + - bf: memmem revisited + - bf: ps: draw_plet vertical endings + - renamed stem_start to stem_begin + - bf: plet bracket placing on differently orientated stems + - more standje.ly and fixes +****** +jan 28 + +pl 42 + - ly2dvi 0.5 (JAF) + - italian.ly (thanks, Paolo) + - bf: first \mudelapaper output (BS) + - bf: cathedral + bazaar URL (thanks, Barrie) + - bf: libc-extension.hh (AO) + +pl 41.jcn4 + - plet brackets (always) in ps (only) + - Plet_spanner derives from bow + - bf: mf/Makefile: let %.tex %.ly depend on %.mf, + iso non-distributed %.log + - mi2mu mudela 0.1.8 + - bit better plet number placement + - handier plet syntax: [2/3 c8 c c ]1/1 and \[2/3 c2 c c \] + - Plet_swallow_engraver for lyrics + - bit better plet number placement (NOT) + - new plet syntax: combined beam and plet open + - more standje.ly + - new plet syntax: start: \plet2/3 stop: \telp1/1 + - Plet_req, Plet_engraver; removed plet stuff from beam + +****** +jan 20 +pl 41 + - warn for score with multiple Music blocks + - bf: \plet (MB) + - \textsharp in 16pt + - malloc frobnifying + - more fontsizes: 26pt, 11pt, 13pt + - \textstyle "bold" + - .rpm: remove old fonts + +pl 40.jcn2 + - bf: typo scores.cc + - bfs: non-default base constructor calls + - bfs: virtual destructors + - standje.ly: the real standchen (first bit) + - gcc 2.8 compile + - nicer scsii-menuetto + +pl 40.jcn1 + - bf: breaking of :| bar + - bf: lyric substitution of _ -> ' ' flower/libc-ext:memmem + - no slope=0 beams between stafflines + - bf: tex without lily-ps-defs + - bf: embedded mf shift: added '%' to \embeddedps + - doos compile + +****** +jan 12 +pl 40 + - some doco fixes + - debian diffs (AF) + +pl 39.jcn2 + - bf: bit smarter atan() for feta-sleur (thanks wendy) + - bf: y quantise of multiple down beams (typo) + - minor doc fixes + - bf: distribute mfdeps and moved from mf/out/mfdeps to mf/mf.dep + - some changes to ANNOUNCE + - fixes for simple slur/tie placement + - embedded MF fonts identified by parameters -> reusable runtime fonts + - clean-embeds.sh + - runtime MF beams: feta-beum.mf + - bf: enable switching PS off + - updated runtime MF feta-sleur.mf with new PS slur algorithm + +****** +jan 5 1998 +pl 39 + - 0.2 ANNOUNCE sketch + - unix style paths for LILYINCLUDE env + - show all output pages on website + - ps-to-gifs.sh + - bf: wtk1-fugue2 + - python make-website + - higher brace resolution + - phased out musixtex stuff + - bf: rhythm.ly + - PS slurs + - PS beams + - Bow units + - turn on PS by default + - turn off barnumbers by default. + - bf: halfbeam size. + - bf: -M bug + - stafflinethick in PS (crescendi) + - continued (de)crescendi (in PS) + - bf: spurious beam reqs + - handle unfeasible spacing cleanly. + - ML-address change + - output naming: default to basename[-serialnumber].{midi,tex} + - bf: clef width + +pl 39.jcn2 + - make-examples.sh + - leftright repeat sign + repeatbar dims + - smaller minimum sized rod at end of bar + - bf: spacing.ly + - less space at begin of bar + - experimental whitespace fixes at begin and end of bar + - added to beams.ly + - open-up beam spacing for mult > 3 + - fixed hang/sit to overlap iso aligne with staffline + - fixed inter beam spacing, paper*.ly + - scsii-menuetto.ly fixes + - init/property.ly + - property settings for beam quantiseing and damping + - provisionary multiple-beam fix + +****** +pl 38 + - bf: \> \! \ff (crescendo overlap) + - misc feta-fixes, flageolet sign. + - midi tempo fixes. +pl 37.jcn3 + - max beam slope "compile time parameterised" and set to 0.6 + (oh, how we need runtime generated beams!) + - beam's left y-pos quantisation + - beam slopes' y-span quantisation + - stem.ly + +pl 37.jcn2 + - feta: fixed sizes small numerals + flageolet + + +******* +dec 12 +pl 37 + - --postscript + - don't crash non-fitting grouping (thx, John) + - attach unended spanners to a column (thanks John) + - bf: unended tie + - bf: tie direction + - bf: unended slur + +pl 36.jcn2 + - feta: small numerals + +******** +dec 9 + +pl 36 + - bf: notehead collisions + - bf: dot y-position + - use Item::break_priority_i_ for horizontal alignment of breakables. + (it still sucks) + - junk some derivation checks, junk Normal_*_bar + - FlowerLib fixes. + - twinkle fixes. + - feta: flag/clefspacing + + +******* +dec 5 +pl 35 + - naming: lily-init iso symbol.ly + - mf braces + - center textscripts. + +pl 34.jcn1 + - mf: nicening of dyn, klef, rest + - fingerfont + - bf: 12/8 + + +******** +dec 2 +pl 34 + - bf: mf: numbers and alto clef + - bf: scsi-menuet + - PS crescendos + - ly2dvi diffs (JAF) + - debian diffs (AF) + - w32 doco fix (JCN) + + +******** +nov 24 + +pl 33 + - added abbrev.ly to font.ly; rm'd abbrev.ly + - don't process scores on parse errors. + - bf: kortjakje.ly + - bf: invisible stems in beams (abbrev.ly) + - lytodvi script (JAF) + - output Paper_def settings to TeX file. (eg: linewidth) + +******** +nov 19 +pl 32 + - change type checks (ughugh) to derivation checks (ugh) + - this fixes clef bug. + - bf: order of breakables: meter comes after bar. + - bf: do error iso coredump on unknown symbol-table + - bf: release.py, copy patch too. + - bf: add makefile dep for disting MF logs. + - bf: don't read font-en-tja*.ly, but feta*.ly + +pl 31.jcn2 + - first version of (non-ugh) c-klef + - bf: mi2mu: notes of zero duration as comments + - feta: ugh c clef + + +******** +nov 17 + +pl 31 + - bf: replaced Score_column assert by a warning (thanks Scott) + - bf: mi2mu version output (thanks Scott) + - faq updates + - always output lily header with Lily version + - bar mucking: make scorebars/braces different from repeat bars. + - feta: repeatcolon, clef bf's + - debian/ updates. (AF) + - moved debian stuff into toplevel dir + +******** +nov 11 + +pl 30 + - feta: G clef. + - scripts now do relative coords (fixes lyrics + barnumber bug) + - bf: Lyrics lexer mode + - bf: bass clef + +******** +nov 6 +pl 29 + - feta: bass clef, bf: dynamics, bf: 64th flag + + +******** +oct 30 +pl 28 + - revised Staff_symbol::brew_molecule_p () + - naming: \makelilytitle + - fixes for TeX titledefs (JAF) + - junked some obsolete pedal stuff. + +pl 27.om-je-te-helpen-met-je-ps-spul.jcn1 + - embedded slurs: + * bf: placements + * added \embeddedtex + * postscript is default + * fixed \embeddedps + * fixed mf: draw_slur + * postscript macro: draw_slur + +******** +oct 29 +pl 27 + - -t/--test switch for experimental stuff. + - bf: debian optimize is not with 'z' + - mf: naming feta fonts are now called feta16, feta-beams16, etc. + - feta: ledgerline + - lily adjustments for new and elegant ledger line + - bf: mf-source path. + +pl 26.jcn1 + - bf: numerals + - sleur.ly + - embedded slur testing + - bf + patch: make-patch release.py / VERSION + + +******** +oct 26 +pl 26 + - bf: \transpose + - feta: numerals 0 - 9, rewrote flags. + + + +******** +oct 22 + +pl 25 + - variable stemlength + - feta: 32nd, 64th flags + - font.ly + - dist & tarball made in out/ + - rewrote release.sh in python + - notehead/stem attachment better. + - more Stem cleanage + - related Beam cleanage + - started numeral font (JCN) + - bf: whole rest outside staff. + +********* +oct 20 +pl 24 + - internationalization preps (FP) + - rewrote make-patch in python + - BUGS: added another flex/libio crash explanation + - feta: flags + + +******** +pl 23 + - feta changes: 1/4 rest, flat, bf 8-128 rest + - bf: cadenza + - bf: scripts + - bf: rest-collision + - bf: meter placement + - junked cpgento.sh + +********* + +pl 22 + - bf: lyric 's- Zondags + - bf: colliding accidentals: renamed translate(Real,Axis) to translate_axis() + - renaming of scripts + - strings with escaped characters. + - bf "string_with_\"_embedded" + - bf: mf/Makefile + - feta changes (trill, organ pedals) + - updated mf-to-table for new feta conventions + - changed header format to something sensible. + - moved staff to centerline == 0; + +******** + +pl 21 + - shrinking uses more energy than stretching + - check IO error on writing (disk full?) + + +********* + +oct 8 +pl 20 + - don't swallow non lyric-stuff in lyrics + - x-position of Stem + - more feta changes + - move scripts to right + - genheader.py replaces genheader.perl + +pl 19.jcn2 + - bf's mi2mu: + * Midi_track_parser::note_end_all + * staff output uses key, meter, tempo read + * command line read minor key + * minor key notenames + +pl 19.jcn1 + - small changes to sharp, fermata + - small changes to lilypond.lsm+doc, lelievijver.lsm + - mi2mu updeet + bf + +pl 19 + - bf: keyword.cc rm'd struct defs + - dots: support for feta dots. + - lots of font (feta) tjanges + - mf-to-table rewrite in python + +********* +pl 18.jcn1 + - check for python, mf-deps fix + +pl 18 + - bf: Box[X_AXIS] = b + - bin/mf-deps.py script + - moved beams out of font-en-tja into vette-beams. + - Made corresponding .cc changes. + + +jcn patches + - egcs compile (no link yet) + - nicer 4rest + - beam font (je kunt wel tegen een grapje, eva?) + - mf-to-table: + * "breapth" (x-depth) feature + * handle generic stuff such as beams + - polished noteheads + - fixed 8-128 rests + - 4rest + - mf-to-table generates tex defs + - bf:mf-to-table and conflily outname check + - 8-128 rests + +****** +sep 24 + +pl 17 + - bf: ledgerline width + - bf: toccata-fuga-E + - took out some hardwiring of tex-beam + +pl 16.jcn1 + - mf-to-table.in: generate mozarella metric info tables + - autometric.mf: write metric info to mf logfile + - ital-r.mf, smaller ital-m.mf + - variable streepjes length (top/bottomlines); fixed (for 20pt?) + - streepjes twice as thick as staffrules + - even more pronounced bolletjes -- how 'bout this wendy? + - quarter and half note after drawings (a/b less distinct) + +***** +sep 19 +pl 16 + - revised mudela-man a bit + - ; optional after \musicidentifier + - bf: doco about {Mus*,Opus}TeX + - bf: configure: MFDIR + - bf: String::operator bool () removed + - bf: String::operator char const * () removed + - bf: Line_spacer::~Line_spacer () added: plugged memleak + - bf: Line_of_score::do_unlink () call Spanner::do_unlink + - bf: rests in beams + - bf: textnatural + - bf: 20 pt flags + - bf: longarest + +pl 15.jcn1 + - bf: typos whole and half notehead + - de-uglyfied bolletjes.mf + - ascii output of font metrics in mf logfile + +****** +sep 17 + + +pl 15 + - put top of NEWS file in the webpage + - breadth first search for engravers. + - bf: coriolan-alto.ly + - Stem / Notehead width now properly calced + - Atom and Symbol merged + +pl 14.jcn1 + - lily's own noteheads (balls/globes :) (font-en-tja*.mf) + - {table,paper}* and taupindefs adaptations (when are we moving?) + - fp, sf, sfz dynamics + - font.ly + - bf: dist mudela-mode + +******* +sep 15 + +pl 14 + - Simple but nifty mudela-mode.el for Emacs + - slightly better syntax for single-note-repeat, now default kept in +Stem_engraver + - bf: Abbrev_beams are not the only beams (see: jcn4, stem-info, thanks, Jan) + - a CPU timer for Interpreting and Breaking + - Separate Score_elem: + * invoke-once stuff in Super_elem (using function pointers; much cleaner now) + * geometrical stuff into Graphical_element + * Axis_group_* accept Graphical_elements iso. Score_elems + * A dimension cache, hopefully this makes lily a bit faster + * TeX output moved out of Score_elem, separate interface Outputter + + - < \multi 2; bla > -> \multi 2 < bla > (mudela 0.1.6) + - bf: don't do \multi if \type specified + - Translator switching: Change_translator, Change_iterator + + +pl 12.jcn4 + - fixed dynamic f, magstep bug + - gaps on abbrev-beams + - bf: stem-info + - bf: last abbrev + - bf: stem: do_width + - bf: removed rest-column.hh + +******* +sep 11 + +pl 13 + - big Rest/notehead rewrite: + * separated Rest, Note_head and Dots + * Dot_column: dots are now chord-wise aligned + * Rhythmic_head is base for Rest, Note_head + * Merged Note_column and Rest_column + * Rest_engraver + - grand Engraver/Translator/Performer rewrite. + * properties: \property voice.dir = -1 (mudela 0.1.3) + * Input_translator junked, now Translators are generated +by the parser (mudela 0.1.4) + * Translator changing: \translator Staff=oboesolo + * Translator preselect: \type Staff=bla < c4 >. (mudela 0.1.5) + * Engraver/Performer now derived of Translator. + * Engraver_group_engraver/ Performer_group_performer derived of + Translator_group + * renamed: Voice -> Thread, Voice_group -> Voice + - renamed Audio_score to Performance + - junked mididef statics + - Audio debug output + - bf: excess [] in scsi + - bf: swallow \skips + - bf: don't crash on infinite dims + - renamed wohltemperirt to wtk1-fugue2 + - bf: address in GPL + - bf: errors in stdin + - bf: stop if errors in init files + - bf: move stem too when doing collisions + - Molecule::add_XXXX -> Molecule::add_at_edge () + - doco updeet: why no midi FAQ, index, CodingStyle hungarian + + +pl 12.jcn3 + - try at better dynamic font, copied from cmbxti10: mf/* + - typesetting abbreviation beams; abbreviation-* + - some simple abbrev fixes + code cleanup (dank je, lieverd) + - typesetting simple abbreviations: c4:16 === [c16 c c c] + +pl 11mb + - Support also for \longa in duration-convert.cc, init/ and tex/ + files. (MB) + +******** +sep 3 + + +pl 12 + - bf: don't redefine tex primitives like \textfont and \mathfont + - nicer broken slurs (?) + - bf: error status upon parse error + - robustness in Lookup::*slur + - bf: mi2mu: warn if 0-length string in midi-file + - output id-footer + +******** +sep 1 + +pl 11 + - forms for Musical vocabulary + - ignore \r for windows + - Now paper{score,def} & midi{def,score} derived of class +Music_output[_def]. Score is almost empty. + - Engraver hacking: + * junk Text_engraver + * Timing_engraver + * barnumber now really counts the number of bars + * Separated Stem_engraver and Beam_engraver + * junk Stem_beam_engraver + * no need for Stem_reqs + - use Direction = {LEFT, RIGHT, UP, DOWN} iso. -1, 1 throughout source + - ties and slurs with Drul_array + - junked Spanner_elem_group + - bf: w32 fixes + - Spanner now spans items. + - more GNITting ( bla ) -> (bla), indentation + - Drul_array + - Paper_column now is derived of Horizontal_group_item. Items +are no longer hardwired into a Paper_column + - bf: stdin input + - PCol -> Paper_column + - Wtk-i, fugue1, prelude1 (SR) + +******* +aug 21 +pl 10 + - bf: init pending_indent_i_ + - output header to TeX file. Who wants to write TeX to make it work? + + - mi2mu: bf's, --key option + - removed Duration(int,int) + - bf: Duration_convert::dur2_str + +pl 9.jcn2 + - redo of mi2mu frontend (midi-parser) + - bf: String_convert::bin2_i; added bin2_u + - bf's: Binary_source_file + - bf: constr. Tempo/Timing_req +pl 0.1.8.jcn3 + - table20, standchen-{16,20}* +******* +aug 18 + +pl 9 + - declare rhythic_request + - preliminary support for real \mudelaheaders + - context-sensitive arithmetic spacing. Looks alot better + - silly GNU braces. + - JCN fixes for pl 8 + - bf: midi instrument + - Vocabs from GMP-I + +pl 8.mb: + - use log of duration-name + +******* +aug 15 +pl 8 + + - gif -> xpm + - bf: Whoops! Open eyes now, when finding shortest note in +spring-spacer. Fixes spacing problems. + - GNU coding: parentheses (here you are, Franc,ois :-) + - all macros now UPPERCASE + - Identifier blondification: don't use void* + - Identifier doesn't store its name. Much cleaner now. + - bf: Rest_collision_engraver now always announces + - bf: announce Staff_sym only once +pl 0.1.7.jcn1 + - complete redo mid/back-end of mi2mu + - bf: do not create/play empty Audio-{text,instrument} events + + +******** +aug 14 + +pl 7 + - Audio_element as base for Audio_item and Audio_staff. fixes +midi-lyric segfault + - added "Gallina a due violini" (MB) + - make MIDI files on website. + - Collision now also is an Element_group. + - bf: announce Collision when created + +******** +aug 13 +pl 6 + - bf: 13 shift/reduce in parser fixed + - bf: plets in parser + - bf: main.o (again) + - german notenames (RM) + - Score_elem::offset_ now relative to its X/Y groups. Slight +speed increase? + +******** +aug 12 +pl 5 + + - Wordwrap revert + - added LilyPond in WWW titles + - oops. A quaver is a 8th note, not a 4th + - bf: main.o remaking in lily/Makefile + - unhair Voice_iterator + - bf: error if no music in score + - bf: don't create translators if Chord element is empty + - bf: ctor of Tempo_req + - use virtual do_equal_b() for request comparison + - bf: turned off default plets: c4*2/3 c4*2/3 -> c4*2/3 c4*4/9 + - bf: time_int() of an empty chord/voice + - more corrections to GMP Manifesto + - debian updates (AF) + - bf: g++ ICE in Performer_group_performer + - use fread() for reading in Simple_file_storage + +pl 0.1.3.jcn1 + - mi2mu: simplification +bf lily_stream: indentation and wordwrap + - mi2mu: bf: blunt: non-alpha(num) chars from identifiers + +********* +aug 11 + +pl 4 + - correction of GNU Music Manifesto + - moved lowlevel stuff of Source_file to Mapped_file_storage. +Interface via File_storage. (Now using Simple_file_storage) + - bf: c4-"A"-"B" + - bf: exit status + - declarable keys + - Engraver_group_engraver::find_simple_engraver() + - bf: lily/Makefile + - bf: Midi_note_event ctor + - bf: tempo request + - popular twinkle twinkle (JV) + - mudela: parse tempo requests, \midi{ \tempo 4= 60;} + +****** +aug 8 +pl 3 + - don't crash if no Clef_engraver. + - PScore -> Paper_score + - bf: Score_elem::extent() init of interval + - bfs: {Horizontal,Vertical}_group related + - bf: don't change original Item while doing making + multiple copies + - bf: configure DATADIR + - bf: type of spanbar. + +pl 0.1.2.jcn1 + - minor doco fixes + - revived Midi_walker + - moved midi out of performer-* to audio-* + - Audio_staff + - removed all members from performers + +******* +aug 7 +pl 2 + - junked Line_of_staff + - bf: --output + - bf: . in lexer + - bf: mi2mu version number. + - bf: in mudela-book + - bf: don't forget to make mi2mu + - Bar_number_grav: measure numbers (experimental) + - Bar_column_engraver, Bar_column: scripts on bars + - rewrite of {Horizontal,Vertical}_group. Yes, again. +Now neatly integrated into class hierarchy + - Axis, Axis_group + - Debian rules (AF) + +pl 0.1.1.jcn1 + - Audio{column,score,item,...}, more generic audio + - bf: Makefiles + - bf: mi2mu mudela version +********* +aug 5 + +pl 0.1.1 + - {Horizontal, Vertical}_group. A score_element may be in at most one. + - This means Horizontal_group_item and Vertical_group_spanner need special support. + - This also means a big speed increase + - configure cleanup + - bf: Choleski solve. + - doc updates: lilygut, INSTALL + +pl 0.1.1.hwn + - recode of Break/Colhpos interfaces + - Gourlay_breaking: dynamic-programming optimal solution for + casting off. Word_wrap is still optional + - some printing short cuts if no -d specced. + - band_matrices for column calcs + - more Diagonal_storage fixes + - retake: INFTY fixes ( now infinity_mom, infinity_f ) + +pl 78.jcn3 + - configure: ln and zip + - target doosdist -> lilypond-x.x.x.exe.zip: + executables - sources + + + diff --git a/Documentation/misc/CHANGES-1.0 b/Documentation/misc/CHANGES-1.0 new file mode 100644 index 0000000000..5cff9ea377 --- /dev/null +++ b/Documentation/misc/CHANGES-1.0 @@ -0,0 +1,515 @@ +pl 17 + - fixed RPM building. + +pl 16.hwn1 + - ridiculous slur dims fixed. + - ly2dvi32.py -> ly2dvi.py, ly2dvi.sh -> ly2dvi-old + - use re iso. regex for python stuff. + - bf: mudela-book.py + - updated install directions. Made lilypond-login for csh + - bf: installdirs of MF stuff + - Dictionary implementation using hash tables (LilyPond is 3% faster) + - Cache [non]group_l_arr () calls in translator-group.cc (LilyPond is 4% faster) + +pl 16.uu1 + - debian URLs, make/stepmake.make patch + - further debian fixes. + +pl 14.tca1 + - partitas + - prall{mordent,prall} patch. + +****** +pl 16 + - read property ydirection and tieYDirection for tie direction. + - bf: slur over rest. + - bf: include path + - part of jcn2 + - configure --enable-guile + +pl 15.jcn1 + - autoconf on mf,mfont mp,mpost + +pl 15.am + - Lots of patches from *Adrian* *Mariano*! + +********** + +pl 15 +pl 14.hwn1 + - \lyrics iso \lyric (mudela 1.0.7) + - cleaned up real_expression syntax. + - removed optional_semicolon nonterminal after toplevel assignment + - MInterval Music::time_int () -> Moment Music::duration () + - junked Music_iterator::daddy_iter_l_ + - junked Sequential_music::offset_mom_ + - tempo compression: + * syntax: \times 2/3 Music + * Compressed_music, Compressed_music_iterator + - flower: init rational to 0 + - flower: removed P?Cursor<>::P?Cursor (), using pointer iso ref now. + - don't install into TeX, but into ${datadir}/{mf,tex,ly} (todo: ps) + + +********* +pl 14 + +pl 13.uu1 + - syntax for \translator: (\name "Name") + - bfs for footer + - bf: init/{book,center}-fragment.ly, YODL nofooter stuff. + - bf: redeclaration + - bf: doc fixes + - bfs: egcs 1.1 + +pl 13.mb1 + - bf: Lookup::afm_find, the width was undefined for the feta fonts. + - bf: refman.yo + +pl 13.jcn5 + - bf: init/paper* missing `;' + - lilyponddefs.ps fixes + - crude output name fix, see scores.cc + +pl 13.jcn4 + - some ps output fixes + - lilyponddefs.ps: some sane implemenations + - removed (some) ghostscript internals + +pl 13.jcn3 + - PostScript output version 0.0; do + export GS_LIB=$HOME/usr/src/lilypond/tex + export GS_FONTPATH=$HOME/usr/src/lilypond/mf/out + make -C mf pfa + lilypond -t example-1 # or try: lilypond -t twinkle :-) + gv lelie.ps + - ps: + * lots of output fixes, chars, strings + * tex/lilyponddefs.ps: added rather braindead defs + +pl 13.jcn2 + - tex/lily-ps-defs.ps (./tex?) + - grand output rehack + * dropped {dimen,tex}.{cc,hh} + * {ps,tex} stuf to {Ps,Tex}_lookup + * init/table*.ly: added #parameters + - ps fonts: + * ps-to-pfa.py generates valid type-3 fonts + * do: make -C mf pfa + * set: GS_FONT=GS_FONTPATH=$HOME/usr/src/lilypond/mf/out + +pl 13.jcn1 + - crude postscript type 3 font: + make sure to have mfplain.mem metapost precompiled macros + make -C mf ps + gv out/feta20.sp + +******** + +pl 12.mb1 + - bf: feta-timesig.mf Added horizontal space, minor corrections. + - Changed meaning of Staff.timeSignatureStyle: + C Use C and stroked C for 4/4,2/2 + old Use old style mensuration marks + 1 Use single number + Cn/m Set symbol explicitly, n/m=2/2 or 4/4 + oldn/m Set symbol explicitly, n/m=2/2,3/2,3/4,4/4,6/4 or 9/4. + All other time signatures are typeset with the default two-digit + layout. + + +pl 12.jcn2 + - Lookup abstract base class + - Lookup/Symtable(s): separation of input/output + +pl 12.jcn1 + - preparations for braindead PostScript output + +pl 12.hwn3 + - praeludium-fuga-E to relative mode + - bf: mudela-mode.el + - bf: BIBINPUTS + - more dutch glossary + explanations + - table-to-html fixes +pl 12.hwn2 + - bf: mymycode in .yo + - VERSION to out/ + - add VPATH to mutopia + - access_Identifier (bool): (non)copy arg now explicit. + - bf: lilypond-latex.tex + + + +pl 12.hwn1 + - \remove "Engraver_type"; + - \output "bla" -> output = "bla" (mudela 0.1.6) + - \property defaultclef -> \property defaultClef + - naming of access_{Engraver,Performer,Translator_group} () + - changed syntax for \translator in \paper{} (mudela 0.1.6) + - declared contexts: + + StaffContext = \translator { .. } + \translator { \StaffContext } + + - elt_b -> elem_b + - bf: add Separating_line_group_engraver to RhythmicStaff. + + +pl 12.am1 + - large doc patch, ChoireStaff -> ChoirStaff + +******* +pl 12 + +pl 11.uu2 + - added Transposed_music for mixing transposition and relative + +pl 11.jcn1 + - bf: config.make striproff + - texinfo +pl 11.mb2 + - feta-timesig.mf: Added some flesh on C and C2, + added old-style mensuration marks. + +pl 11.mb1 + - Added feta-timesig.mf, font for C and alla breve. + + +pl 11.uu1 + - new \property: meterSignatureStyle for C and C2 time sigs + - bf: BIBINPUTS + - stepmake 53 + - bf: gif vs. png stuff + +******* +pl 11 + +pl 10.uu2 + - plet-spanner fix. + - large doc patch (thanks Adrian) + +pl 10.jbr1 + - aclocal.m4, stepmake/aclocal.m4: Choose specific python + - stepmake/bin/release.py: Use the same python calling process + - make/lilypond-vars.make: PATH should not use PATHSEP. It is fine + to hard code it to `:' on both Windows NT and UNIX. + - stepmake/bin/package-zip32.sh: Perform configure with a specific + python, ie cygwin32 python on Windows NT + +pl 10.uu1 + - junked \octave + - marginBreakPriority, direction==LEFT + - mf-to-table NT fix (JBR) + - createKeyOnClefChange property + + +pl 10.jcn1 + - mf-to-xpms for Harmonia + +pl 9.jbr1 + - scripts/convert-mudela.py: We must close infile and outfile before + a rename occurs. NT Windows locks open files. + stepmake/bin/package-zip32.sh: renamed all python bins to: + .py in NT Windows distribution. + + +********* +pl 10 + +pl 9.jcn1 + - started gnuisation of website + * filetype and size + * 'no gifs due to patent problems' + - bumped stepmake version nr (again): + please update stepmake/VERSION after making changes to stepmake... + +pl 9.hwn1 + - do default midi,paper by toplevel \paper / \midi (mudela 1.0.4) + - bf: error if no Score context + - notename table now can be declared as well. + - junked \clear + +********* +pl 9 + +pl 8.uu1 + - junked \staff, \multi + - bf Music_list::Music_list (Music_list const&) + - AC_SUBST(PATHSEP,DIRSEP) + - generate Documentation/tex/out/*.bib (AM) + - a4 fixes (AM) + - bf: metafont-*.make + - parser.yy: intlist mods. (mudela 1.0.2) + - \melodic -> \notes (mudela 1.0.3) + - typo: calcalute_dependencies () + +pl 8.jcn3 + - gif -> png + * ps-to-pngs.sh + * stepmake + * website + * yodl-1.31.4 (to be released) + - target 'texinfo' -> 'info' + +pl 8.jcn2 + - more doco in texinfo (with yodl pl3) + - bf's: package-diff + +pl 8.jcn1 + - removed tutorial from texinfo, yodl2texinfo is still rather broken + - bf: setlocale NUMERIC to 'C' + - removed ugly space from print-dimen + +******* +pl 8 + - make website fixes. + +pl 7.jcn1 + - minor stepmake/yodl fixes + +pl 7.uu1 + + - changed separator in vocabulary + - added barAlways and defaultBarType properties. + +pl 7.hwn1 + - changed header format. Use a + for concatenation. + + \header { key = "concat" + "string" } + + (mudela 1.0.2) + - allow computed properties in translator definition + + GrandStaff = \translator { + minVerticalAlign = 1.5\staffheight; + .. + } + + - Music inheritance. Datastructure and parser now follow this grammar + + Music_list: + | Music_list Music + ; + Simultaneous_music: '<' Music_list '>' + ; + Sequential_music: '{' Music_list '}' + ; + + - bf: Item::do_unlink () don't iterate on attached_span_l_arr_, +because it is changed by Spanner::set_bounds () (thanks Thomas) + - bf: URL Documentation/index (thanks EP) + - bf: twinkle.ly (thanks EP) + - bf: mi2mu (thanks Murray) + - bf: mudela-book --dependencies + - split LaTeX and TeX stuff + +pl 7.tca1 + - more Partita's + +pl 7.jbr1 + - aclocal.m4,make/lilypond-vars.make: added PATHSEP as AC_SUBST to + help support Windows NT doco build. + Documentation/ntweb/index.yo: minor spelling changes + + +************* +pl 7 + - refman updates by Adriano Moriano. + + +pl 6.jbr2 + - scripts/ly2dvi32.py: Fixed bug with lily input including multiple + files. Also, we now stream out lilypond log one line at a time + for better feedback. + +pl 6.jbr1 + - scripts/ly2dvi32.py: Added some doco, add postscript option, set + MFINPUTS along with TEXINPUTS, modified initialization sequence. + Made some Python style changes per Han-Wen suggestions. + - Documentation/man/ly2dvi32.yo: Added a manpage for ly2dvi32. + - stepmake/bin/package-zip32.sh: Added doco distribution. Removed + the installation directory after zip operation. + - Documentation/ntweb/index.yo: LILYPOND -> LILYPONDPREFIX and + comments about MiKTeX-1.11. + +pl 6.tca1 + - First movement of Partita II (BWV 826) in + mutopia/J.S.Bach/Cembalo-Partitas. Lilypond output was so + beautiful that I'll have to write the rest of the partita. + +pl 6.uu2 + - mudela-book.py --dependencies + - more doc fixes (AM) + - warn if declaring a keyword. + - \grouping 4 2*3; now accepted. + - patches to standchen.ly + +pl 6.uu1 + + - mudela-book handles \input now + - vocabulary fixes by Adrian Moriano + +******** +pl 6 + - largish rehack: + * Super_element is now an `abstract' class, + * Paper_score directly contains one Line_of_score. The + breaking/postprocessing/deletion is mixed with the output phase. + * Hopefully this will save memory for large scores. (benchmarks, anyone?) + * bf: Horizontal_vertical_group_item::do_unlink () should call + + Axis_group_item::do_unlink () + + - changed LILYPOND to LILYPONDPREFIX + - added tfm and dvi target for mf/ + - reincluded english.ly + - doc fixes (thanks, Adrian Moriano) + - doc fixes. + - mf: ex height added. + +pl 5.mb1 + - Mudela 1.0.1: Changed \accidentals -> \keysignature + - Identifiers can be used in textual scripts: + + + tempoString="Allegro molto assai"; + + [...] + + c^\tempoString + + + +pl 5.jbr2 + - aclocal.m4,config.h.in,flower/file-path.cc: Added PATHSEP and + DIRSEP to configuration to support windows style path and pathlists. + - stepmake/bin/package-zip32.sh,stepmake/stepmake/package.make: + zip target now calls package-zip32.sh which creates winnt + binary distribution zip file. xzip target continues to use + package-zip.sh for Jan's cross-compiled version. + - lily/main.cc: Added a search for LILYPOND environment variable to + better facilitate binary distributions. + - Documentation/README-W32.yo: Updated information on running lilypond + on winnt. + + + +pl 5.jcn1 + - (step)make fixes from yodl + - minor doco fixes + - bf: patch in website after 'make release' + +pl 5.jbr1 + - Documentation/ntweb/Makefile: Used absolute url for LilyPond Homepage + - Documentation/ntweb/index.yo: Minor mods per Jan's suggestions + + + + +************* +pl 5 + +pl 4.jcn1 + - texinfo docs, lots of yodl TODO + - junked some makefiles + - ntweb: use BLURB + - bf: pletvisibility + - adaptions for yodl-1.31.2's automatic texinfo conversion + - reinclude of 1.jcn2: + - renamed -alto -> viola + - bf: avant-gardish six preludes + - bf: ly2dvi warnings + +pl 4.jbr1 + - stepmake/stepmake/install-outfiles.sub.make: fixed typo + - scripts/GNUmakefile: add ly2dvi32 to installation list and fixed + included executable-targets.make to facilate installation of scripts + - Documentation/ntweb: Fixes to nt web page and added topdoc like + automation. + +********* +pl 4 +pl 3.mb2 + - Changed text script alignment: center -> left + - TeX commands counts as one character when calculating + the length of a Text_def + +pl 3.jbr2 + - Documentation/topdocs/index.yo: Added link to NT dist page + - Documentation/ntweb/: Added Makefile and index.yo to build the + NT dist page + +pl 3.hwn1 + - stepmake hacking + +pl 3.uu1 + - stepmake MAKEFILES -> STEPMAKE_TEMPLATES + - count \texcommands in tex string + + +pl 3.jcn1 + - bf: website: empty toplevel readme's + - bf: xs4all (again?) + - can't administer ftp site now: put patch into website + + +pl 3.jbr1 + - stepmake/stepmake/Executable_targets: UNIX cross-compile doesn't + work with $(DOTEXE) on source of install command. + - stepmake/Generic_targets: creating multiple dirs with mkdir + requires -p option + - scripts/ly2dvi32.py: General and Winnt specific fixes + + +********* +pl 3 + +pl 2.uu1 + - solaris 2.6 compile/make website fixes. + - rm'd WWW.make + - stepmake .43 + - pcnov095.win.tue.nl -> ftp.cs.uu.nl + +pl 2.hwn1 + - mi2mu naming of track output + - bf: do key restore sign only once + - ly2dvi32 preliminary version (JBR) + - bf index.html link + - bf mudela-book.py + + +********** +pl 2 + - scalar compile stuff + - bf install directory + - YODL note + - GUI faq update + - bf ly2dvi + - stepmake split: Po.make + - make check target + - dist AFMs and manpages + - split up mudela.yo in glossary.yo, tutorial.yo and refman.yo + +pl 1.jcn1 + - www.digicash.com www.xs4all.nl + - fake msgfmt + - make uninstall fixes + +pl 1.jbr2 - aclocal.m4,stepmake/aclocal.m4,stepmake/stepmake/Variables.make: + Support install target for unix, unix cross compile, and + Windows NT + +pl 1.jbr1 - stepmake/stepmake/Executable.make: DOTEXE was missplaced + - scripts/convert-mudela.py: program_id should write to stderr + +************** +pl 1 + - mi2mu fix: \key "D" + - \hoffset + - started new NEWS file + - lots of stepmake hacking + - aclocal.m4 copied from stepmake + - ly2dvi 0.12 + - build the doco from the source tree. + - include website in RPM + diff --git a/Documentation/misc/CHANGES-1.1 b/Documentation/misc/CHANGES-1.1 new file mode 100644 index 0000000000..b98baa12cf --- /dev/null +++ b/Documentation/misc/CHANGES-1.1 @@ -0,0 +1,2006 @@ +1.2.0 + - website fixes. + - initialize Script::dir_ + +pl 69.jcn1 + - doco typos + - tex-rules typo + - added missing feta-braces*.mf +pl 68.lu1 + - texinfo fixes +**************** + +pl 68.jcn2,3 + +pl 68.hwn1 + - more tutorial stuff. + - note^\dynamic scriptdir. + - dynamics listen to verticalDirection as well. + - \property automaticMelismas -> \property automaticMelismata + - dynamic padding for crescendi. + +pl 68.jcn1 + - small tutorial fixes + +********* + +pl 67.hwn1 + - tutorial updates + - \property beamAuto -> noAutoBeaming + +pl 67.uu1 + - abc2ly updates + +pl 67.jcn1 + - bfs: refman/parser subtract + - chord::find_additions_and_subtractions: termination assurance + - bf: refman: chord-inversion examples + + +******** + +pl 66.hwn1 + - bf: chord mode unsigned '-' -> unsigned CHORD_MINUS (1 SR conflict). + - refman reedit. + - dotdown only when verticalDirection is set. + - bfs: abc2ly convertor (more or less) successfully converts +movement 2 of Beethoven 7. + - \repeat "semi" -> \repeat "volta" + - all spacing params into paper vars. + - spacing before grace notes. + - warn if font not found. + - staccato dot / tenuto centering + - spacing for clefs. + - bf: Stem_staff_side::do_substitute_element_pointer (); + - new screenshot + +******** +pl 65.hwn1 + - refman updates + - added \simultaneous { } , \sequential { } syntax, for +consistency. + +pl 65.jcn2 + - bf: if tie then melisma + +pl 65.uu1 + - bf: squashed 2 sr conflicts in parser. + +pl 64.jcn2 + - stanchen almost without " " hacks + - if tie then melisma..? + - refman updates + - Abbreviation.beam -> Chord_tremolo + - bf: chord tremolo vs beam over rests + - bf: note width for noteless stem + + + +******** +pl 64.jcn1 + - resurrected abbreviation beam + - coriolan fixes + +pl 64.hwn1 + - reference-manual updates. + - slurdash -> slurDash, keyoctaviation -> keyOctaviation + +pl 64.uu1 + - \property forceHorizontalShift + - bf: denneboom.ly + - warn if translator switching to self. + - warn if brace at end of lyric syllable. + - bf: Repeated_music::alternatives_length_mom () + - \property automaticMelismas: if slur then melisma + - \property noVoltaBraces + - bf: star-spangled-banner + +pl 63.lu2 + - very tight: hinterfleisch -> 0 : input/bugs/spacing-very-tight.ly + - bfs: neutral beam and tie directions (daar was ik al bang voor:-) + - bf: abe: may beam over skip, as long as note present too + - bf: scsii-prelude: added slurs using skips + +********* +pl 63.uu1 + - mutopia updates courtesy Peter Chubb + - Don't make Time_scaled_music for c4*2/3 entry, only do the +time compression. Should cure spurious Tuplet_brace/spanner warnings. + +pl 63.hwn1 + - bf: Spacing for key/timesig at end of staff. + - negative font magnification + - slurs on grace notes. + - paper var stem_default_neutral_direction + - bf: dot-columns. + +pl 63.jcn2 + - bf: midi2ly/duration-iter/convert: handle durations >= 1 + - set reasonable default for text/dynamic paddings + +pl 63.jcn1 + - junked some of (my) old metapost stuff + +pl 63.lu1 + - some faq entries + - chord input and proceccing fixes + - bf: nederlands.ly + +********** +pl 62.jcn4 + - fixes coriolan + +pl 62.hwn1 + - ps-to-pfa.py: use std modules re, find + - minor input fixes + - use mfplain.mp + - Metapost does unfill with setgray. This confuses +GS. Do text substitution with eofill. + +pl 62.jcn3 + - bfs: preludes + - found more wierd spacing + +pl 62.jcn2 + - bf: don't start auto-beam on stem that contains only a rest + - bf: rm .ms yodl output + - bumped stepmake version + +pl 62.uu1 + - don't space rhythmic requests coming from Lyrics. + +pl 62.jcn1 + - bf: auto-beamer: consider starting beam based on new rhythmic head + - bfs: preludes-4, cello-suites + - \addlyricsified standchen and twinkle (ugh: \repeat and \addlyrics) + - bf: interstaff slur slope damping + - bf: in-band signaling slur snap + +pl 61.jbr1 + - Documentation/ntweb/GNUmakefile: Made EXTRA_DIST_FILE style fix and + added dist-plain target as dependency to the default target. + - scripts/ly2dvi.py: getpid does not behave very well across platforms + so I am creating temp file names with the Python tempfile module. + The generate lilypond dependency file option was broken and + is now operational. I also changed the dependency switch + from -d or -M to match lilypond. + - stepmake/bin/package-zip32.sh: Added build of ntweb html + documentation + +*********** +pl 61.hwn2 + - revise / junk various input files. + - junk Music_list_iterator + - bf: declared paper + \shape + - bf: \shape and wordwrap + - Busy_playing_req () + - Music_iterator::try_music_in_children (), +so explicit \context Staff is often not needed for + * tuplets + * repeats + - automatic rest detection for \rhythm + - regtest tight-spacing.ly + - regtest lyric-combine.ly + - Melisma_playing_req, Melisma_engraver, Busy_playing_req: +stuff for syncing music & lyrics. + - simplify Extender_engraver, Hyphen_engraver. Assume lyrics come in from only one voice. + - docced ambiguities in grammar. + - mudela-book -I behavior, verbosity. + - state search path when file not found + +pl 61.hwn1 + - bf: \scm with --safe + - (ly-gulp-file) + - no need to set GS_LIBDIR, .ps files are inlined and directly +printable. + - bf: spacing engine + - fixed paper11/13/16/20/23/26.ly + - use (header-end) iso {ps,tex}setting + - bf: convert-mudela --output + - move \version check to lexer.ll + - moved repeated-music-iterator.cc to folded-repeat-iterator.cc + - bf: broken crescendi + - removed delayed Spanner breaking. + - new implementation of \rhythm: + * Lyric_combine_music + * Lyric_combine_music_iterator + * \property melismaBusy sets melisma state. + * (commented out in parser.yy -- solution is not good enough yet.) + - bf: record def spot of seq/sim music + - junk Music_iterator::next_music_l (), Music::to_rhythm () & friends. + - junk Re_rhythmed_music & friends + - mudela 1.1.62: \shape = -1 -2 -3; -> \shape -1, -2, -3; etc. + solves one ambiguity. + - grace notes at end of music don't crash Lily. + +******* +pl 60.jcn2 + - moved creation of $BUILDDIR/share/locale into set-lily.sh + - slur slope change constraints when snapping + - slur height damping based on bow height + - don't typeset unfinished (auto) beams + +pl 60.jbr1 + - Documentation/ntweb/angels.ly, Documentation/ntweb/guile.patch: added + - Documentation/ntweb/GNUmakefile: add above to EXTRA_DIST_FILES + +pl 59.mb2 + - Tempo changes in MIDI output! + - gallina.ly:auto-beaming + - added property articulationScriptVerticalDirection + (useful in N.W.Gade/score.ly) + - bf, N.W.Gade: removed some more misprints + +pl 60.uu1 + - bf: hara-kiri.ly + +pl 60.jcn1 + - interstaff slur tuning + - added some regtests + - removed now silly check in encompass-info + +********** + +pl 59.uu1 + - papervar loose_column_distance + - scripts don't collide. + - bf: midi2ly outputs \context iso \type + +pl 59.jbr1 + - lily/colhpos.cc: fixed typo + - Documentation/ntweb: Updated News and added all the files + associated with Windows Distribution web page. + - stepmake/bin/package-zip32.sh: added the ntweb page to formated + distribution. + +pl 59.jcn1 + - bfs: slur damping + - papervar slur_interstaff_snap_to_stem + +pl 59.hwn1 + - \property graceAlignPosition : put grace notes after main note. + - moved pianobrace stuff into Lookup + - moved Local_key_engraver out of Voice context, and +acknowledge Grace_align_items. Solves tie + accidental problem. + +pl 59.mb1 + - Some small clean-ups and bug fixes + +*********** + +pl 58.uu1 + - experimental pdftex support, courtesy Stephen Peters. + - --version support + - junked complicated loose column handling. + - only stretch the extra space after prefatory matter, not the +entire width of prefatory matter. + - standardise(d) switches:-d for debug, -M for Make deps, -m for midi-only. + - bf: papervar non_musical_space_strength now works. Set to 8 (-> Strong! ) + - bf: space after time_sig. + - bf: decrescendi. + - bf: barlines on voltas + +************ +pl 57.hwn1 + - bf: accidentals on grace notes. + - \property graceAccidentalSpace + - bf: ignore grace notes duration for non-grace spacing. + - uncommented Key_req::transpose. + - Dot_column::do_post_processing (): better dot collisions, see dots.fly. + - derive Dot_column from Note_side_item. + - renaming of files + * heads-engraver + * request-iterator + * p-score + * engraver-group + +pl 57.jcn3 + - bf: no extension: assume .ly + - bf: bow::do_width; which in turn allowed + - removed broken interstaff slur damping hack, and + - bf: slur height damping fixes damping + +pl 57.jcn2 + - bf: ? priority and snap to stem + +pl 56.jcn4 + - interstaff slur fixes and damping + +pl 56.mk1 + - bf: collision.cc: collisions between chords with different + stem directions and close heads. + +****************s************** + +pl 56.jcn3 + - slur de-hairification + * slurs always attached to noteheads, by default + * corrections for steep and high slurs + * snap to stem end when close + - bow/tie/slur dy/dx fix + +pl 56.hwn1 + - some spacing tweaks. + - bf: two repeats + alts after each other. +pl 56.jcn2 + - tie: bfs + even simpler + +pl 56.jcn1 + - bf: re-added \textflat,sharp to fix chords... + - bf: chord-modifier and mandatory dot: c-maj5 + - tutorial chord fixes + - tie fixes and boldifying: + * removed sloping (dy!=0) code + * use actual note-widths + * y[left] == y[right] + * follow OSU rules, I hope (from comments in text -- must check) + * undetermined direction -> down; inverse of stem + - bf: beam: undetermined direction -> up; like stem + - slur-symmetry fixes + - fix for \rhythm and seq_iter childs (still crude, but more effective) +********* + +pl 55.uu1 + - use GS' anti aliasing + +pl 55.jcn1 + - auto-beamer: consider current duration first in ending/starting beam + this way, you can have 16ths auto-beamed, in some way, but 8ths never + beamAutoEnd_16 = 1; + beamAutoEnd_8 = 1/8; + - added some classes and few lines of doco to .dstreamrc + - refman: + * comment out broken + * commented out stale tex macros (tex/* dir too) + * bfs/new syntax: chords + - more midi2ly renaming stuff + - bf: make info (midi2ly and other renaming) + +pl 54.jcn2 + - bf: auto-beamer: don't beam over skips + - update BUGS + + +pl 55.mb2 + - Font update: added more mensural style time signatures, + old2/4, old6/8alt, old4/8 thanks to Christian Mondrup. + - bf: correct indentation of first line (removed \leavevmode) + plain TeX still gives wrong indentation + - bf: volta brackets broken over several lines get open end. + Final bracket gets vertical end if it stops at double bar. + - Dashed grace flags also for durations shorter than 8. + - N.W.Gade: fixed some details + +pl 55.mb1 + - bf: font magnification also in PS output + - bf: set the GS_* variables correctly in buildscripts/lilypond-*.sh + - bf, lily.scm: errors in (de)crescendo + - bf, lilyponddefs: removed \noindent + + +pl 55.hwn1 + - fixes: horn-concerto-3.ly + - bf: grace before tuplet. + - bf: decrescendo + - bf: multimeasrest numbers centered. + +**************** + +pl 53.jbr2 + - Documentation/ntweb/index.html: Updated nt distribution web page + +pl 54.uu1 + - bf: Stem lens for beams. + - move meta doco to Documentation/metadoc + - move .bibb to Documentation/bibliography + - rename mi2mu to midi2ly + - removed other-packages.bib to comply with GNU standards + +pl 54.jcn1 + - mutopia/J.S.Bach/Duette 1&2 + +pl 54.mb1 + - Renamed \wheel to the \coda + - bf: correct gap in tuplet braces + +pl 53.hwn2 + - move more parameters from PS/TeX to Lily. + - PS cleanup + - TeX cleanup. + - bf: also make (empty) bar at end of voltabracket. + - bf: don't put slur over rest. + + +pl 54.uu1 + - debian updates (anthony fok). + +************* +pl 54 (july, 8) +pl 53.jbr1 + - scripts/ly2dvi.py: A fix for the multitude of file systems supported + by windows. As long as the paths that the cygwin apps use are + UNC style and the paths that the native windows apps use are DOS + style everybody is happy. I add quick and dirty unc2dos function + to facilitate this approach. + +pl 53.hwn1 + - bf mudela-book. + - better min distance for multi measure rests. + - junk ATOM_SMOB + - control tuplet gap size from paper. + - bf: output header as PS strings for PS out. + - bf: cached-fontname + - control volta height from paper block. + +pl 53.jcn5 + - \rhythm-ified and text bfs: standchen.ly + - walk rhythm through *_iterator::next_music_l () + +pl 53.jcn4 + - more abc2ly hacking, including lyrics and \rhythm + - bfs: \rhythm + - \rhythm-ified input/twinkle.ly + +pl 53.jcn3 + - put rhythm A on pitches/lyrics B: \rhythm MUSICA MUSICB + input/test/rhythm-melody.fly + input/test/rhythm-lyrics.fly + - syntax changes: +o * dot-only duration dropped: use c4 c4. iso now invalid: c4 c. + * chords: optional_dot now mandatory: + \chords { c-1.2.3 } iso now invalid: \chords { c-1 2 3 } + * @c@ (notemode_chords) syntax dropped. rather use: + \notes { c d \chords { e f } } + +pl 53.jcn2 + - \property graceFraction: part of next note taken-up by grace(s). + - Note_performer: add moments for delayed notes, + fine for single grace notes: hear gnossienne-4.ly + +pl 53.jcn1 + - grace performance + - fixed tie-performance + - bf: abe + +pl 53.gp1 + - added Hyphen-engraver, Hyphen-spanner +************ +pl 52.jcn3 + - bf: mi2mu: midi without key + - try at grace-performer-group; breaks MIDI output even when no \grace + - silly tie-performer + - performers play_element () delayed to do_pre_move_processing () + +pl 52.jcn2 + - bfs standchen + grace, gnossienne-4 + - decoupled midi output from input + +pl 52.jcn1 + - bf: moved accidental code from Key_engraver to Key_change_req + - bf: midi-key + - bfs: mi2mu: core-dumps, keys, key-names, key-changes, notenames + +pl 52.hwn2 + - new-beaming.cc: new beaming code + * now does [c8. c32 c32] correct by itself. + * beam over barlines + * non-fitting stems handled gracefully (eg. [c8 c4 c8] ) + - junked rhythmic grouping, \grouping and all associated bits. + - bf: do try_visibility_lambda for nonbreakable items as well + (fixes \nobreak on barline) + - bf: Cons_list::truncate() + +pl 52.hwn1 + - repeat-engraver cleanup +pl 52.gp1 + - bf: make doc++ corrected to only include *.h and *.hh files. +pl 52.mb2 + - Added \repetitions: prints symbol for repeated bars. + Same syntax as multi-measure rests! + - Added \segno and \wheel script symbols +pl 52.mb3 + - Added barSize property. Junked barsize variable. + +************ +pl 51.uu2 + - grace note flags, move Lookup::flag into Stem + - faq updates: doc++, Matt's page + - fixes for doc++. + - bartype string uses "brace" and "bracket" iso. "{" and "[" + - some of assert()s replaced by programming_error () + +pl 51.mb1 + - N.W.Gade: added real grace notes + - feta-banier.mf: added grace note flag + +pl 51.uu1 + - use weAreGraceContext \property to determine self_grace_b_ + - made more engravers grace aware. + +pl 50.jcn2 + - filed egcs bug report for powerpc. + - removed unnecessary #ifdef powerpc + - grace and other fixes for auto-beamer + - grace and other fixes for (beam-)stem-lengths + - input/test/bugs/hairy-grace.ly (urg) + - input/test/bugs/grace-accidents.ly (urg) + - input/test/bugs/grace-grace.ly (core) + - fixes: gnossienne-4.ly + +pl 50.hwn2 + - Timing_translator: add proccing moments to nearest global translator, +not to top global translator. + - cadenza.ly: grace notes. + - bf: auto staff switching + +************ +pl 51 +pl 50.hwn1 + - grace notes: + * Grace_iterator + * Grace_music + * Grace_engraver_group + * move Score::run_translator to Global_translator::run_iterator_on_me + * stemLength property, Stem::length elt property + * Grace_align_item + * Note_head_side baseclasses Local_key_item, Grace_align_item + * Local_key_engraver moved to Voice. + * Grace_position_engraver + * Added Rhythmic_head::stem_l_ + * Various other robustifications. + - lily.scm: scm->string + - folded reps without alts. + - Paper_outputter uses scm->string + - stem params now in staff positions iso. real dimensions + - internal: Junk all G_ and g- prefixes + +************ +pl 49.mb1 + - bf: ly2dvi -N + - Added dynamicPadding property (applies only to dynamic marks, + not (de)crescendi. + +pl 49.jcn4 + - resurrected gnossienne-4 + - Documentation fixes (for texinfo get yodl-1.31.13, tbr) + - minor abc2ly fixes; successfully converted some simple abc files from + http://faeryland.tamu-commerce.edu/joyce/ + - www.mail-archive.COM + +pl 49.jcn1 + - guile scm_gc_mark () workaround: + - via scm output wrapper buildscripts/lilypond.sh, set: + PATH=$LILYPONDPREFIX/buildscripts/out:$PATH + - scm output fixes + +pl 48.hwn2 + - bf: rest-collisions. + - cleaned up standchen + - bf: slur dims. + - bf: unfold without enough alternatives. + - Use Lily version for \version. + + +pl 49.uu1 + - ran purify. Fixed some small problems, plugged some leaks. + - bf: linebreak at |: + - doc updates by Adrian Mariano + +pl 49.mk1 + - Breathing signs by Michael Krause + +************ + +pl 48.hwn1 + - \property hshift -> \property horizontalNoteShift (mudela 1.0.21) + - cleaned up collision. \property hshift = 2 now supported. + - Spacing: + * bf: don't divide strength by distance if distance == 0.0 + * cleaned up Spacing_spanner + * simplistic optical illusion spacing for opposite stems. + - don't use Protected_scm for Score_element::element_property_alist_ + - some scsii fixes. + - Lookup cleanups; junked Lookup::paper_l_ + - abc-2-ly: tuplets, guitar chords., chords, + +pl 48.mb2 + - bf: correct accidentals after tied over note. + +pl 48.mb1 + - bf, lookup.cc: Count '{' also directly after a TeX macro + - bf: textstyle->textStyle in all examples. + +pl 48.jcn1 + - bd: interstaff slurs at line break + +pl 48.uu1 + - add a WX field to AFM output. + - add space before ; in AFM output + +********* +pl 47.jcn1 + - bf: interstaff slurs (urg: more segfaults in scm_gc_mark ()) + +pl 45.hwn3 + - Abbreviation -> Stem_tremolo. + - bf: Stem_tremolo in Beam. + - bf: Stem_tremolo over whole note. + - spacing before clefs. + - Spacing_spanner is now on by default + - junked most of Spring_spacer + - Tunable space after barline. + +********* +pl 46.mb2 + - Reintroduced the tupletVisibility property. Same values as + the old version (pletvisibility), see the Reference Manual. + Note: does not work correctly with automatic beams. + - Added a tupletDirection property. + +pl 46.uu1 + - bf: {} in texts. + +pl 45.hwn2 + - more doc updates. + + +pl 46.mb1 + - Added property articulationScriptPadding + - N.W.Gade: layout fixes + +********* + +pl 45.hwn1 + - Audio broadcast & acknowledge. + - more advanced spacing for prefatory matter + - tuplet appearance tweaking + - bf: ChoirStaff + +pl 45.uu1 + - glossary fixes (thanks Dirk). + +pl 44.jcn2 + - bf: auto-beamer: long standing br form AM + + +********* + +pl 45 (may 28) + - reinstalled Thread (there you are, John) + - german vocab. + + +pl 43.hwn2 + - split G_staff_side_item into G_staff_side_element and G_staff_side_item. + - junked old Staff_side + - Crescendo also uses G_staff_side_element + - crescendo_shorten paper var. + - create horizontal groups for break_aligment inside Break_align_item. + - more abc-2-ly fudging + +pl 44.mb1 + - bf, property.ly: change fontsize->fontSize + - N.W.Gade: removed old tie behaviour + - bf, ly2dvi: expand .sly extensions + +********* +pl 44 +pl 43.jcn2 + - bf: repeat :| placement + core dump + input/test/repeat.ly + input/test/coda-kludge.ly + - bf: mf without ljfour + * feta-accordion fix/hack for feta11 at 300dpi + +pl 43.hwn1 + - half assed attempt at ABC convertor. + - Spacing_spanner: "decentral" spacing stuff. Use -t to try. + - bf: StaffGroup vertical alignment + - \property {slur,tie,}ydirection -> {slurV,tieV,v}erticalDirection (1.0.20) + - Spanner now hangs on left endpoint. + - \property forgetAccidentals: do not remember accidentals. + Every note not in the key triggers typesetting of an accidental. + - \property noResetKey: do not reset key at start of measure: + accidental remain in effect until overriden + - bf: ties & accidentals (fix breaks oldTieBehavior) + - junked Tie::same_pitch_b_ + +pl 43.jcn1 + - configure, set-lily.sh, release stuff + +pl 42.tca2 + - lilypond don't put \interstaffline after last line. This to + get really nice vertical spacing for mudela-book. + - mudela-book: vertical spacing + - lilyponddefs.tex: commented out \parindent=0pt to get correct + paragraph indent for mudela-book + +************ +pl 43 + +pl 41.hwn3 + - reinstated \property inheritance + - \property SkipBars -> skipBars + - \property midi_instrument -> midiInstrument + - \property fontsize -> fontSize (mudela 1.0.18). + - bf: add a space after lyrics. + - junked flower DLL classes + - rewrote repeat music and iterators (mudela 1.0.17) + * Folded_repeat_iterator + * Unfolded_repeat_iterator + * New_repeated_music + * syntax change: \repeat FOLDSTRING NUMBER Music [ALTERNATIVE Music_se +quence] + - data struct simplification: junked Dynamic_req, +Absolute_dynamic_req, Span_dynamic_req, Slur_req, Beam_req. Use +Span_reqs and Text_script_reqs with type fields instead. + +pl 42.tca1 + - updated mudela-book documentation + - misc mudela-book.py + - accordion: smaller dots + little script renaming + + +pl 42.jcn1 + - bf: hp-u(rg)x: user build; sm 73 + - bf: hp-u(rg)x: sm74 + +pl 41.mb1 + - convert-mudela: convert textstyle -> textStyle + - refman.yo: properties moved to correct contexts. + - mudela-book.py: Added singleline, multiline options. + Fixed default line width bug. + +*************** +pl 41.hwn2 (may 10, 1999) + - bf: Score bar line thickness. + - more paper writing + - website tweaks. + - Graphical_element::dim_cache_ now alloced separately. + - junked Graphical_element::absgolute_offset + - Musique-de-Table + - mmrest_x_minimum now works at begin-of-line. + - junked Span_bar::extra_x_off + - \property foo.bar = \stringid + \otherstringid + - bf: stop on lexer errors as well. + - only do vertical alignment at Score level. + - tweaked ledger endings a bit. + + +pl 41.hwn1 + - small fixes. + - mudela-book.py patch (thanks MB) + +pl 41.mb1 + - Added the installation instructions to the top web page. + - N.W.Gade: Added triangolo part, minor changes. + +pl 41.tca1 + - Lookup::accordion and removed some accordionfonts + +*************** + +pl 40.uu2 + - rest ledger lines are dimensionless. + - Score_elements are added to the Paper_score directly when +announce_element () is called. This makes it possible to init +molecules from within engravers. + - changed \type to \context + - \context Contextname = ID Music is now a real separate production + * you can do + \context C1 \context C2 + + and C1 won't overwrite C2 + + * you need some extra explicit context specs, eg. if you start a +voice with a chord. + + \score { \notes { } } + + should be + + \score { \notes \context Voice { } + + - set staff margins on grandstaffs too. Center staffmargins vertically. + - \property values are not inherited anymore, i.e. setting +Score.minVerticalAlign does not set GrandStaff.minVerticalAlign, Staff.minVerticalAlign and Voice.minVerticalAlign as well. + - {Axis_spanner, Hara_kiri}_engraver which can be added at wish. +Hara_kiri should be working again. + - boilerplate for accordion stuff. + - some more paper writing. + - bf: substitute vertical refpoint as well for broken items. +(fixes clef^8) + - bf: translating molecule without elts but with dims. (bf: accidental +spacing.) + +pl 40.mb1 + - bf: ly2dvi set MFINPUTS so standard tree is found before lilypond + - bf: lilypond-regtest.doc, ls-latex.py; now finds author/title + +pl 40.uu1 + - large documentation patch by Adrian Mariano + +******** +pl 40 +pl 39.mb2 + - added more mensural style time signatures, old3/4, old6/8, old9/8 + - redesigned old6/4, old9/4 + - Updated refman.yo, lilypond-regtest.doc, clefs.ly, time.fly + +pl 39.hwn1 + - consified mi2mu (pl 37.jcn1) + +pl 39.mb1 + - bf: invisible clefs don't take any space, moved _8 below clef + - updated incipit example and macro + +pl 39.uu1 + - delete graphical objects in reverse + - faq updates. + +******** +pl 39 (april 12) + - \property textstyle -> textStyle + +pl 38.tca1 + - added scm/accordion-script.scm and update ly/accordion-defs.ly + - renamed some accordion symbols to make them more english and less + norwenglish. + - removed dot from \accBayanbase + +pl 37.script4 + - bf: molecule + - bf: tuplet spanner appearance. + - bf: less spacing after clef. Invisible bar has no dims. + - included AIMS. The why of Lily. + - warning if duplicate engraver. + - warning if no ties could be created. + - bf: \time1/4; .. beams .. + - bf: staff switching beams / slurs. + - tuplets on multiple beams. + - Documentation/tex/lilypond-regtest.doc + - bf: nested tuplets + - slur cleanups. + - bf: multi_measure_rest_engraver in Score_context. + +pl 38.uu1 + - bf: clef_8 + - bf: barnumbers. + +pl 37.script3 + - fixes for spring_spacer, introduced +Spacing_engraver + - cleanup for rest-collisions. + - hacks for GUILE gc + - mudela-book \mudelafile + - Documentation/tex/lilypond-regtest.doc + - MF rest fixes + + +******** +pl 38 (april 6) +pl 37.script2 + - bf: AFM for BlueSky AFM files. + - \penalty = 4278 -> \penalty 4278 + - URG!! fixed major (unnoticed) bug in dependency engine + - Further Script hacking: + * G_script_column + * G_script_column_engraver + +pl 37.script1 + - major Script rehack: + * G_stem_staff_side_item + * G_script + * G_script_engraver + * G_script_req + - junked Text_def, changed \property textstyle -> \property textStyle +(todo -> convert-mudela) + - Line_of_score is an Axis_group_element, no more overlapping +lines, hopefully. + - mf: whole diamond head tweak + +pl 37.mb2 + - Added property clefStyle: "" / "transparent" / "fullSizeChanges" + - New example: input/test/incipit.ly + - Documented clefStyle and restStyle in refman.tex + - Partial bug fix: octaviated clefs. Still broken!!! + + +pl 37.mb1 + - Added property restStyle. + - mensural 4th, 8th and 16th rests. +pl 37.uu1 + - FreeBSD bf + +**** +pl 37 (march 30, 1999) + - note head styles, see input/test/noteheadstyle.fly + * \property noteHeadStyle: + * diamond note heads (probably really ugly) + * cross note head. + * harmonic head (mf sources were tweaked) + * transparent for no \heads + * \property noteHeadStyle ="" for normal heads. + +pl 36.mb2 + - bf: timeSignatureStyle + - Added dynamic fz (forzando) to Lilypond + - bf: N.W.Gade, sfz -> fz + +pl 36.hwn1 + - debian fixes. + - don't insert extra alignment space for empty stuff. + - Align_element derives from Axis_group_element + - junk cruft for detecting upbeam / downbeam. + - junk all *{horizontal,vertical}* Score_element derived classes. + - G_staff_side_item::padding_f_ now generic property. + - some tweaking of beam & stem. + - junk pointerlist in Sources + - junk Stem::mult_i_, Stem::beam_gap_i_, G_staff_side_item::padding, + Bar::at_line_start_b_, Key_item::c_position_, Note_head::type_str_, + Note_head::staff_size, Stem::xdir_ + +pl 36.mb1 + - bf: N.W.Gade + +************** + +pl 35.uu1 + - more memory tweaks: don't do Score_element::line_l () when deleting lines. + - more generic properties. + - change ridic. dims assert into warning. + - tex/ midi fixes (thanks, Mats). + - bf: don't crash when no Stem_infos are set. + - extender-spanner simplification + - working MIDI chords (Thanks Dscho) + +pl 35.jcn1 + - some ps fixes + +************ +pl 35 + +pl 34.hwn2 + - "Lily Was Here" is def'd as \mudelatagline, override with + \header { tagline = "... " ; } + - \property currentBarNumber: set + current bar number. + - \property postBreakPadding: tune extra + space padding after linebreaks. + - \property textEmptyDimension: disregard script text + dimensions (untested) + - \property staffLineLeading: set the staff space + - adjustable staff space size (per staff) + - Staff_symbol_referencer as base class for elements that use + info of the staff symbol. \property numberOfStaffLines also works OK + with ledger lines. (Is that useful? dunno.) + - warning if someone does \translator with no name + - junk Item::breakable_b_ + - junk PointerList, use Killing_cons + - bf: Auto_beam_engraver. + - bf: mmrest engraver. + - use callbacks for Dimension_cache. + - lots of small cleanups. Junk various members of + Score_element & derived classes: + * Item::original_l_, + * Spanner::original_l_, + * Score_element::transparent_b_, + * Item::break_priority_i_, + * Item::break_status_dir_, + - merge Score_priority_engraver / Score_horizontal_align_engraver + - Use more generic element properties. + - precompute SCM symbols. + - remove_elt_property (): Try to junk an element property, if not + needed anymore. + + + +pl 34.uu1 + - more PointerList junkings. + - MIDI bugfix. + - be more conservative with Dicts/Hashes mem usage + +********* +pl 34 + +pl 33.uu2 + - some performance cleanups: junked PointerList instance, plugged some leaks. + - style -> fontname now in scheme. + - minor Score_element brainsurgery: + * generic element properties. + * junked Score_element::junk_links, Score_element::unlink + * junked Directed_graph_node as superclass of +Score_element, this should reduce mem usage a bit. + +pl 33.jcn2 + - fixed autobeamer's beam->unlink () + +pl 33.jcn1 + - allow autobeaming according to duration iso (crude) multiplicity + +pl 33.jbr1 + - change my email address + - Windows platform does a cp -r instead of a ln -s + +pl 33.uu1 + - bf: ^ and _ + - junked poor man's dynamics. + +********* +pl 33 + +pl 32.mb1 + - bf: \> and \< were interchanged!! + - Added property: textScriptPadding + - Changed copyright text on the Gade score. + +pl 32.uu1 + - really include Gade score now. + - fixes: install-[out-]targets, INSTALLATION_[OUT_]SUFFIXES + - install TFMs in separate dir. +pl 31.hwn3 + - Span_bar bugfix (there you go, Mats). + - bf: Score copy ctor (-> bf declaring score) + - new Tie behavior: only tie identical pitches, switchable with + oldTieBehavior + - junked cautionary_b_ from Musical_pitch + +pl 32.jcn1 + - set-lily: set weird locale links for $LILYPONDPREFIX + +********** +pl 31.mb2 + - Added example: "Imellan Fjeldene" by Niels W. Gade. + - bf: don't attach staff margin text to clef changes within the + lines. (Still not perfect: no text when a clef change happens + +pl 31.hwn2 + - be somewhat lazy in break/object multiplication. + - print # elements for memory usage impression (try -t) + - Paper_score cleanup + - junked various Pointer_list instances. Executable now is smaller. + - junked various cruft + - merged do_substitute_dependen{t,cy} to +do_substitute_element_pointer () + - more parser cleanup + - Interval uses Drul_array + - bf: I've been drinking too much + - delete break helpers before object breaking/multiplication. Try +to save some memory. + +pl 31.jcn4 + - bf: toplevel install, kpsewhich + - sm 71, require yodl-1.31.11 + - fix: slur macros + - bf: info in rpm, if available + - fix: rat != float + - bf: slur-follow-music + +pl 31.uu1 + - config.make: include GUILE_LDFLAGS + +****** +pl 31 (feb 16) + +pl 30.jcn1 + - sm fixes, intl/ fixes + +pl 30.mb1 + - Added support for magnification of TeX fonts ==> + larger dynamics in 20pt scores. (Doesn't work in Postscript) + +pl 30.hwn1 + - Debian patches (thanks, Anthony) + - Italian support (thanks, Maurizio) + - parser cleanup + - minor chord.cc cleanups. + - bf: \rc \rced + - hara kiri doesn't do suicide with normal rests. + - Hara_kiri_vertical_group_spanner generalised + - extender engraver rewrite, now __ is like ~ [] |, ie. in between +notes/lyrics. + - lyric engraver now engraves only single voices. Use +separate LyricVoices to get stacked lyrics. + - bf: bar(Non)Auto first barline + - barAuto -> barNonAuto + + +******* + +pl 30 (feb 15) + +pl 29.uu1 + - typewriter font + - star-spangled-banner bf (slur.cc). + + +pl 29.jcn3 + - fix: slur-case3.ly + - init.sly: .fly with linewidt=-1 + +pl 29.jcn2 + - resurrected ps output + +pl 29.hwn1 + - bf: coord relative to self. + - bf: error msg if no AFM found + - bf: hang script on bar in other axis too (fixes staff-side-slur bug) + - hang on scripts on clef as well (more to left for single staffs) + + +pl 29.jcn1 + - bf: volta sizes + - GNU stuff on home page + +******* +pl 29 + +pl 28.hwn1 + - bf: mid measure clefs (breakable items in non-breakable columns.) + - spanner.cc assert changed to warning + - (c) 1998 -> 1999 search replace. + +pl 28.jcn1 + - new outline TODO + .emacs setup +******* +pl 28 +pl 27.hwn2 + - un-SMOB Atom. Cons and Killing_cons as simple cons replacements. + +pl 27.jcn5 + - outline TODO + +pl 27.jcn4 + - measure-end hinterfleish patch + - input/test/coda-kludge.ly + - bf: volta-number placement + - volta: support for "1.-2." "3" + +pl 27.jcn3 + - bf's: zero-length repeats + - Auto beamer: + * turned on by default + * input/test/auto-beam*.ly + * support for time-defaults + - Chords: + * input/just-friends.ly + * ChordNameContext + * bf's: chord mode: accept STRINGS, rests + * bf's: banter_str + - new bool \property Score.barAtLineStart + +pl 27.hwn1 + - global ctors + - read lily.scm before all .lys + - Link_array derives from Array + - search repl: Array -> Link_array + - junked most static casts + - revamped Atom / Molecule: Molecule now is the public interface. +Atom is a GUILE smob. Guile takes care of allocation and list stuff. + - bar scripts on score bars (there you are, Mats) + - :||: span bar fixed + - using generic ledger lines now (regenerate fonts!) + - refman updates (Thanks, Adrian!) + - Molecule::operator = (), Molecule::do_center () + - junked Span_score_bar, Score_bar, Staff_bracket, Piano_brace. Folded functionality into Span_bar + - textstyle property for textual scripts. + - lookup cleanups (time_signature, text, stem, junked extender, filledbox, simple_bar) + - junked obsolete TeX stuff. + - ly2dvi-testpage.ly + - only make AFMs for feta[0-9]+.mf + - using strings for abs loudness. + + +pl 27.jcn2 + - grand renaming: Duration vs Moment / Rational + +pl 27.uu1 + - extra beam warning + +pl 27.jcn1 + - complete redo of chord and chord name code + - small fixes + +************* +pl 27 (feb 3) + +pl 26.uu1 + - make TFMs too. + - bf: dynamics. (Don't hang on spanner!) + - read TFM before AFM. + - fix din-MF stuff (UGH) + +pl 26.jcn4 + - Chord: handle all chord stuff; lots of chord fixes + - bf: Chord-name-engraver: find tonic + - bf: my-lily-parser: get_chord + + +pl 26.jcn3 + - bf's: spring spacer end of measure + - bf: tie/slur rods (dankje, lieverd) + - bf's: intl/ compile, install, uninstall + +pl 26.jcn2 + - enforce {slur,tie}_x_minimum (urg, paper vars?) + - tie listens to tieydirection/ydirection + - bf: tie placement + +pl 26.jcn1 + - tutorial fixes + - bf: OrchestralScore should do hara-kiri.. + - bf: makeinfo: + - info in rpm again + - update to yodl pl10, yodl2texinfo fixes + - use --force, .info should always be generated + +********* +pl 26 (feb 1, 99) + +25.jcn2 + - bf: staffside axis init + - bf: staffmargin stuff. + - Timesig C fixes + + +pl 25.uu2 + - junked Scarlatti clef + - fixed clef^8 + - Interpretation_context_handle is interface to interpretation context + - Staff_switching_translator: automatic staff switching for Piano staffs. + +pl25.jcn1 + - volta-spanner: junked dot_p_; not so handy after all: kerning?? + - feta-nummer: added : ,-. + - volta/tuplet thickness + - bf: scs-paper + - bf: ".|", and bar-thicknesses + +pl 25.uu1 + - bf: default duration is 4 + +********** +pl 25 + +pl 23.ms2 + - property noteheadStyle + - first attempt to make harmonics : see input/test/harmonics.fly + +pl 23.ms1 + - sinfonia.ly: several fixes + - dynamics + * increased range pppppp to ffffff + * added sp, spp, sff, rfz + * example see input/test/tchaikovsky.ly + * updated dynamics in refman + + +pl 24.jcn2 + - website fixes + - bf's: chords: + * reverted c1*2, collides with \times {} + * should use: c\breve, c\longa for long chords + * addition: c-9, subtraction: c^5 + * multiple -add, ^sub: c-7+.9-^3.5 + - bf: lyric chord + - bf: lookup text height + - bf's: autobeamer + + pl 24.jcn1 + - bf: rest collisions + - separate tfm-reader + - bf: :|: should not have thin lines + + +pl 24.mb1 + - bf: Correct units now used in the .afm files. + +****** + +pl 24, Hacking Apart Together (Jan 25) + +pl 23.jcn9 + - bf's: preludes-* (found a \meter and \transpose c`` there!) + - bf: ly2dvi: don't barf on 'linewidth = -1.;' + - bf: lily-version + +pl 23.jbr1 + - scripts/ly2dvi.py: Windows 95 shell does not support redivrection + of stderr. We now distribute ash and use it when needed. + - stepmake/bin/package-zip32.sh: distribute ash, and guild ice-9/ + directory. We build and distribute manpages in html format instead + of text format. + - Documentation/ntweb: Updated doco and now distributing as a self + extracted binary with install script. + +pl 23.hwn4 + - bugfixes + - changed All_font_metrics to do TFM as well. + - changed init/ to ly/ + +pl 23.jcn8 + - tfm reader; revamped code from fontutils-0.6 + +pl 23.hwn3 + - {Bar numbers|staff margin stuff|marks} fixed using +Bar_script_engraver as base class + - bf: PS points != Lily \pt + - junked Bar_column_engraver + - junked Text_item and some old files. + + +pl 23.jcn7 + - bf: piano-brace size (veels te simpel: kruis vingers tegen reject) + - crude autobeam stuff in mi2mu + - brevis, longa chords: c1*2,*4 + - mutopia/E.Satie/petite-ouverture-a-danser.ly + - prop: voltaVisibility + - more cello-suite-ii fixes: + * nice repeats + * removed all beams ifo auto-beamer + - bf's: autobeam + - junked dur2real; beamAutoEndx now as rational string: "1/2" + +pl 23.hwn2 + - _8 clef + - junked #args symtable def. + - junked Text_item. + - moved Bar assembling into LilyPond + - junked symtables reads + - Lookup cleanups + - junked Symtable from init/table* + +pl 23.hwn1 + - revamped Scarlatti K3-L378 + - some more doco + - use interning/SCM for Scopes + - hanging on now works for breakables too. + +pl 23.jcn6 + - chord fixes; notemode chord syntax changed: @c@ @c-7@ + - fixed cello-suite ii + - bf's: auto-beamer; but nasty bug remains: input/bug/auto-beam.ly + - bf: extender + - (bit ugly) fix for lyric-chords + - fixed repeats (dankjewel lieverd) + * input/twinkle.ly + * input/star*.ly + +pl 23.jcn3 + - succussfully removed []s from wtk1-fugue2.ly + - bf + smarter autobeamer + +pl 23.jcn2 + - mi2mu: d-minor: des->cis, g-minor ges->fis + +pl 23.mb1 + - bf: Position and possible SIGSEGV in Mark_engraver + - Added padding support in G_staff_side_item + - bf: Correct direction of textual scripts. + - bf, lookup.cc: Fewer warnings about missing text styles. + Same units used in all .afm files. + +pl 22.jcn5 + - auto-beaming v0: input/test/auto-beam.ly + + + +*********** + +pl 22.jcn4 + - bf's: repeat-engraver; \bar "|:", ":|" now deprecated for repeats + - bf: :|, |: + - property barAlways changed to boolean (0/1) + - added boolean property: barAuto + +pl 22.jcn3 + - bf: mmrest + +pl 22.jcn2 + - updated mi2mu + - bf: multi-measure-rest (input/test/m.ly) + - half fix for staff-margin-engraver + +pl 22.jcn1 + - bf's: cross-staff slur + - bf: gnossienne-4 +pl 22.tca1 + - buxfix, \mudela{ \times 2/3{ ...} } works now + +****** + +pl 22 + - fixed "already have a Beam" error + +pl 21.jcn2 + - gnossienne: hmm, how to + * undisplay bars + * don't put 'grace notes' in beam + * put separator between "] \translator Staff=x" + +pl 21.jcn1 + - gnossienne-4.ly (start of) + +pl 20.jcn2 + - mutopia fixes; see preludes-1.ly for cross-staff beams and slurs + - bf: broken interstaff slur + - sm66: check for gmake + +******* +pl 20.jcn1 + - interstaff slurs v0: preludes-1.ly + - warnings for silly interbeam settings + +pl 20.hwn1 + - inclusion of WIP article about LilyPond. + - L.Mozart sinfonfia + - bf: [c8 [c8 c8] + +******** +pl 20 + +pl 19.jcn5 + - interstaff beams v0: see beam-interstaff.ly and wtk1-fugue2.ly + +pl 19.jcn4 + - new stem/beam parameters + - bf: forced stem shorten + +pl 19.jcn3 + - dehairification of beam code; cleanup and bugfixes + * stemlength + * forced stem shorten + * slope calculation + * damping and correction + * catch for silly beams: input/test/beam-suspect.ly + +pl 19.jcn2 + - multi-measure-rest is now spanner SkipBars=0 is broken + +pl 19.jcn1 + - hmm, almost centered whole-bar rests -- NOT + +******** +pl 18.jcn5 + - bf: beamtrend + - bf: vv-duet + +pl 18.mb1 + - \mark now works, using G_staff_side_item. + - Improved layout of multi-bar rests, including a new + font symbol. + +pl 18.jcn4 + - beam length adjustments + - ugly beamtrend fix: input/test/beam-trend.ly + +pl 18.jcn3 + - bf: (beamed) forced stem shorten + - bf: broken slurs and ties; minimal slur/tie length setting ignored + - bf: separators on cygwin + +pl 18.jcn2 + - bf: stem-length algorithm + - bf: beam direction algorithm + - bf's: wtk1-fugue2.ly + +pl 18.jcn1 + - stepmake update + - small fixes: spacing.ly, wtk1-fugue2-ly, violino-viola duet. + +******* +pl 18 (jan 4 '99) + +pl 17.jbr2 + - Documentation/README-W32: Brought my stuff up to date + - Documentation/ntweb: updated for realease + - stepmake/bin/package-zip32.sh: cygwin-b20 changes + - scripts/ly2dvi.py: LILYPONDPREFIX fixes + +pl 17.jbr1 + - scripts/ly2dvi.py root is now the shared directory path not the + root of the lily installation. Environment variable LILYPONDPREFIX + is also the path to shared directory. + - lily/main.cc WINNT conditional added to avoid a casting of + main_prog + +pl 17.hwn1 + - bfs wtk1-fugue1 + - spacing tweak: very widely and tightly spaced lines look +better. + - allow Beam settings to be overriden: property + stemLeftBeamCount, stemRightBeamCount + - junked Assoc, Assoc_iter + - junked Graphical_element::{width,height} + - junked Plet_swallow_engraver, Plet_engraver + - Command_tie_engraver -> Tie_engraver, Command_beam_engraver -> Beam_engraver + - naming brew_molecule_p / do_brew_molecule -> output_processing, do_brew_molecule_p + - experimental Text_item, Staff_side + - junked old Beam_engraver and old Tie_engraver. + - AFM administration cleanup. + - cache brewed molecules. Speed up ? + - rehacked Graphical_element, introduced Dimension_cache + +******** + +pl 17 +pl 16.jcn2 + - fix: TEMPO 4., well urg, "TEMPO 4 ." + - beginning of violino/violoncello (viola) duet + +pl 16.jcn1 + - resurrected po-stuff + +********* +pl 16 + +pl 15.uu1 + - dynamic fix. + - junked abbrev stuff from parser. + +pl15.tca1 + - fixed verbatim option behaviour for mudela-book. + - added mudela-book option intertext="some text" + - mudela-book now understand latex \begin{verbatim} + +pl 15.jcn1 + - chord inversion: + * enter C/E + * display chord names according to boolean property + \property Score.chordInversion; + +********* +pl 15 + +pl 14.hwn1 + - new beam syntax: { [ ] }, changed in lilypond, +parser, lilypond (mudela 1.0.14), manual + - new tie syntax: { ~ } changed in manual, +parser, lilypond (Mudela 1.0.13) + +pl 14.jcn1 + - bf: get_chord C-m5- + - typos: chord-name + +pl 14.tca2 + - move option proccing out of main + +********** + +pl 14 + +pl 13.hwn1 + - tutorial fixes. + - junked find-quarts + - junked various plet goryness. + - preps for ~ syntax + - bib fixes + +pl 12.jcn3 + - bf's: standchen + - added repeat, chord stuff to website + - bf: dashed slur + - hacks for barlines, dynamics + +pl 12.jcn2 + - bf: package-diff + - new chord syntax, again: TONIC [DURATION] ['-' MODIFIERS/ADDITIONS] + - shorthand prefix for note-mode: '@', no shorthand for notes in chord + mode... + +pl 11.jcn6 + - bf: ly2dvi: better guess LILYPONDPREFIX: ../share/lilypond + - chord-table; urg bugs: + * note-collisions + * accidental-placement + - bf: cis m (\textsharpm, urg) + +pl 11.jcn5 + - bib entry, twinkle-pop + - bf's: chords + +pl 11.jcn4 + +********** +pl 13 + - mutopia stuff (thanks, Peter) + - bugfix : \maininput + +********* + + +pl 12 +pl 11.jcn3 + - bf: missing triads + - @c @c min (* is taken, <<, <> don't work) + - chord-modifiers (urg, "sus" should also subtract 2...) + +pl 11.uu3 + - --safe: security paranoia: disallow untrusted \include, +disallow untrusted TeX code, disallow named output + +pl 11.jcn2 + - duration with chords + change: @4 c @c7 + +pl 11.jcn1 + - minor chord syntax change: *c6 iso @c6; + +********** + +pl 11 + +pl9.tca1 + - included that missing init/mudela-book-defs.py. Added + one line to init/GNUMakefile to make .py-files be included. + - fragment and nonfragment options to override autodetection + +pl 10.jcn1 + - input/test/chords.ly + - \type ChordNames and chord-name-engraver.* + - chords mode: \chords { @c; @d7; } + +pl 10.uu1 + - scm/ directory. install .scm stuff too. + - tuplet bug fixed. + +********** +pl 10 + +pl 9.jcn3 + - property: unfoldRepeats; unfolding still broken + - volta spanner y-collision + - bf: volta number,dot placement + - bf's: init/table16,20 + - small additions to init/lily.scm to enable some testing + - junked extra repeat braces + + +pl 9.uu2 + - bib stuff + - removed \output from parser/lexer + +pl 9.jcn2 + - bf/redo: slur.cc, encompass-info: setting of encompass array. + - switched tuplet-engaver off (core dumps) + +pl 9.jcn1 + - bf (urg): no |: at start of piece + - bf?: text defs without width + - alignment absolute dynamics + - mutopia/opus-130.ly (excerpt, triggered by GUIDO) + - bf: crescendo symbol + + +pl 9.uu1 + - added faq entry + - copertina (thanks Maurizio) + +***************** +pl 9 + - fixed \relative + +pl8.tca1 + - changes to mudela-book. Junked fragment and floating options, + added eps option. Options should not stay as long that you get + comfortable with them. ;) + - Also possible to define your own commands with + a syntax like \mudela{c d e} + - updated mudela-book-doc.doc + +pl 8.jcn3 + - website: gnuisation of footers + +pl 8.jcn2 + - input/test/vertical-text.ly: urg ydim of text chords + - bf: one set of |: :| volta per staff + - bf: init/table* braces + more braces + - try at score-volta-bracket + +pl 8.jcn1 + - bf: lyric-engraver: handle multiple requests (don't overwrite) + - bf: guile-config + - music-list-iterator + +pl 8.hwn3 + - coriolan corno 1 + +pl 8.hwn2 + - more output revamping. + +pl 8.hwn1 + - Scheme output stuff + - tutorial fixes. + +***************** +pl 8 + +pl7.jcn3 + - bf's: spanner/volta + - volta-support: via Note, Bar, and Paper-column to Bar (item) + +pl7.jcn2 + - note repeats + +pl7.jcn1 + - configure/guile fixes (still no check for 1.2/1.3) + +pl7.hwn1 + - tutorial fixes + - tuplets over beams. + +***************** +pl 7 + +pl6.jcn5 + - repeatbars, volta-spanner work, alternative iteration still broken + - volta symbol + +pl5.szmulewicz2 + - more GUILE stuff. + - tutorial doco updates + +pl6.jcn4 + - volta-spanner + - repeat-engraver + - repeat/alternative music layout (hehe) + +pl6.uu1 + - Doco of music iterators. + +******** +pl 6 + +pl5.szmulewicz1 + - rtti stuff + - bf's: lily.scm + +pl5.mb1 + - bf: array.hh, don't make copy if resized to the same size + - bf: feta.tex + +pl5.jcn4 + - scm additions: plet, hairpin + - website fixes + +pl5.jcn3 + - website fixes + +pl5.jcn2 + - extender-*, see input/test/extender.ly + - bf: half-beam length (urg) + - fixes: standchen, star + +pl5.jcn1 + - tex/lily-ps-defs.tex fixes + - lily.ps + +pl 5.hwn1 + - Tuplet_engraver + - lily.ps fix. + - junked MY_RTTI stuff, simpler VIRTUAL_COPY_CONS + +******** +1.1.5 + +pl4.jcn4 + - fixes; preludes, finger + +pl4.jcn3 + - bf: text staff vertical align; see input/test/vertical-text.ly + - urg, scaled cmr8 by factor 4/5 + - apart from end/begin of measure spacing urgs, stars-and-stripes.ly + is rather cool + +pl4.jcn2 + - read (cmrxx)afm for text char widths + - tfmtoafm.sh (quite urg) + - alphabet.ly + +pl 4.uu1 + - read .scm files. No need for GUILE_LOAD_PATH + - .ps hack. No need for lily.ps on the printer + + (&$^@M&@^$@^&$@ Damn TeX) + + + - bf: mudela-book -> \default_paper is obsolete. + +pl 3.ms1 + - thumb-upgrade + +pl4.jcn1 + - bf: dotted slur + - bf: text ssb + - bf: empty/unknown in ps + +pl 4.tca1 + - 40% speedup executing mudela-book on mudela-book-doc.doc + - change of lilypond's output filenames. Given multiple input + files, eg. 'm.ly y.ly', output names will now be 'm.tex y.tex' + not 'm.tex y-1.tex', but if m.ly containts two paper definitions + output will be 'm.tex m-1.tex y.tex' + +******* +1.1.4 + +pl 3.tca1 + - accordion symbols in mf/feta-accordion.mf and + init/accordion-defs.ly. + - small changes to mudela-book and Documentation/man/mudela-book.yo + - mudela-book example file in Documentation/tex/mudela-book-doc.doc + +pl 3.jcn5 + - bf: dashed-slur + - bf: LilyIdString + - more star fixes + - repeatbar fixes + +pl 3.jcn3 + - mup-to-ly.py: version 0.0 + - init/test/stars-and-stripes.ly (from star.mup) + - GrandStaffContext + +pl 3.hwn1 + - junked musical info from key-item + - tutorial fixes. + +pl 3.jcn2 + - bf: font switch + +****** +1.1.3 + +pl 2.jcn2 + +pl 2.uu1 + - ly2dvi.py -I fix + - obsoleted ly2dvi.sh + - removed Note_head_engraver + +pl 2.hwn1 + - scm cleanups, chop-decimal + - scarlatti clef. + +pl 2.jcn1 + - commented-out Level-2 PostScript in lily.ps (J. Buehler) + - moved tex/*.ps to ps/ + - merged lilyponddefs.ps, lily-ps-defs: tex/lily.ps + - be sure to set: + export GS_LIB=$HOME/usr/src/lilypond/ps + - added tex and empty ps-symbols + +pl 1.jcn4 + - more little website fixes + +******** + +pl 2 + +pl 1.mb1 + - Support for cautionary accidentals. , i.e. accidentals + within parantheses. Syntax: 'cis?'. Try input/test/accid.fly + Note that the font has changed. + - bf: No unnecessary warnings about time signatures + - Added optional second argument of \key. Set to \major or \minor + to get a major or minor key. Default: major. + - bf: Compilation error in midi-walker.cc + +pl 1.jcn2 + - fixes for htmldoc, website + - silly jcn1 fixes + - junked MODULE stuff from lily/GNUmakefile (again) + +pl 0.jcn4 + -set: + export GUILE_LOAD_PATH=$HOME/usr/src/lilypond/init + - dstream: Score_element, Column_info + - -fscm debug hack: lilypond -fscm a; guile a.scm > a.tex; tex a + - init/lily.scm + + +******** + +pl 1 +pl 0.uu5 + - fixed MIDI output. + +pl 0.jcn3 + - dropped stepmake/aclocal.m4 + - removed silly -lguile (BLA_LIBS, EXTRA_LIBS ??) + - added debugging output format: -fscm + - ly2dvi.py -I fix + - Documentation/tex/feta.tex + - doco fixes: PATCHES.yo, yodl-1.31.7 + +pl 0.uu4 + - Protected_scm to fixup GUILE gc + +pl 0.uu3 + - more RTTI cleaning. + +pl 0.uu2 + - undone type_info::before hack. (Ugh. RTFM). + +pl 0.uu1 + - more RTTI stuff: is_type_b -> type_info::before + +pl 0.jcn1 +pl 17.jcn7 + - added: set*text, timesig, beam + - guile-1.3 is fine; my egcs-1.0.2's -O2 is broken +pl 17.jbr1 + - stepmake/stepmake/bin/package-zip32.sh: Updated configure statement + and modified win32 specific distribution file names to match + pl 16.hwn1 changes. + - scripts/ly2dvi.py: Modified search paths to match the new lilypond + installation tree. + - scripts/convert-mudela.py: Remove the an existing backup file + before renaming original. This is a WINDOWS32 Python requirement. + - Documentation/ntweb/index.html: Updated documentation to match + new lilypond installation tree. + - lily/main.cc: Fixed LILYPONDPREFIX search paths. + + + +********** + +1.1.0 + +pl 18.exp + - use C++ RTTI iso access_Xxx () + - junk Graphical_lisp_element + - catalan.ly + +pl 17.tca1 + - rewrite of mudela-book + +pl 17.ms1 + - added \thumb (used very often in cello music) in + mf/feta-schrift.mf. + - added /input/test/thumb.ly (example) + +pl 16.jcn1 + - dashed-slur through scheme + +pl 15.jcn4 + - more scheme hacks + +pl 15.jcn3 + - try at scheme in Atom + +pl 15.jcn2 # rest of + - graphical-lisp-element + silly half hook-up with autuplet + +pl 17.jcn5 + - stepmake pl59: templatised install (see mf/) + - reasonably ps/tex success (with guile-1.2): + * input/kortjakje.ly + - lots more scm stuff + - bf: mf/mfplain.ini + - stepmake pl58: guile 1.3 configure fix + - working font-switch: + guile-1.2 and -lreadline -ldl from 1.3 configure... + +pl 17.jcn4 + - installable stepmake pl57 + - urg, FIXME guile-1.3: + * don't install shared libs! configure can't handle + * manually add: EXTRA_LIBS = -lguile -lreadline -ldl + * lily's truely broken, downgrade do 1.2 + +pl 17.jcn3 + - lots of stuff still broken, notably font selection, just try + a()b + or so + - tex output support + - all output through scheme + - option: f, output-format=X + - geile placebox + - mf/mfplain.ini + +pl 17.jcn2 + - all paper output through scheme, about half way + +pl 17.jcn1 + - 16.jcn1 + diff --git a/Documentation/misc/GNUmakefile b/Documentation/misc/GNUmakefile new file mode 100644 index 0000000000..55a1efe7ed --- /dev/null +++ b/Documentation/misc/GNUmakefile @@ -0,0 +1,21 @@ +depth = ../.. + +NAME = documentation + +STEPMAKE_TEMPLATES=documentation texinfo + +TEXTS =AIMS $(wildcard CHANGES-*) $(wildcard ANNOUNCE-*) $(wildcard NEWS-*) interview +EXTRA_DIST_FILES = $(TEXTS) + + +include $(depth)/make/stepmake.make + +default: do-doc + +local-WWW: $(addprefix $(outdir)/, $(addsuffix .txt, $(TEXTS))) + +copy-for-me: + $(foreach a, $(README_TOP_FILES),cp ../$(a) $(outdir)/$(a).txt && ) true + +$(outdir)/%.txt: % + cp $< $@ diff --git a/Documentation/misc/NEWS-1.2 b/Documentation/misc/NEWS-1.2 new file mode 100644 index 0000000000..d3499b3490 --- /dev/null +++ b/Documentation/misc/NEWS-1.2 @@ -0,0 +1,25 @@ +WHAT'S NEW SINCE 1.0.17 + +* Large cleanups, enhanced design and GUILE integration for smaller + memory footprint and more flexible code. + +* Direct output to PostScript (optional), PDFTeX or as GUILE script + (default output still to plain TeX). + +* Convertors for ABC and MUP formats. + +* Font: now available as scalable PostScript. New glyphs: time + signature, more note heads. + +* Enhanced input: semi-automatic beaming, (nested) tuplets, (nested) + repeats, chordnames, automatic Lyrics durations. + +* Grace notes, volta brackets, multiple styles for note heads and + time signatures, breathing signs, lyric extenders, cross staff + beaming and slurring. + +* --safe option for the paranoid. + +* More elegant spacing. Text is spaced exactly. + +* Lots of bugfixes. diff --git a/Documentation/misc/NEWS-1.2~ b/Documentation/misc/NEWS-1.2~ new file mode 100644 index 0000000000..d3499b3490 --- /dev/null +++ b/Documentation/misc/NEWS-1.2~ @@ -0,0 +1,25 @@ +WHAT'S NEW SINCE 1.0.17 + +* Large cleanups, enhanced design and GUILE integration for smaller + memory footprint and more flexible code. + +* Direct output to PostScript (optional), PDFTeX or as GUILE script + (default output still to plain TeX). + +* Convertors for ABC and MUP formats. + +* Font: now available as scalable PostScript. New glyphs: time + signature, more note heads. + +* Enhanced input: semi-automatic beaming, (nested) tuplets, (nested) + repeats, chordnames, automatic Lyrics durations. + +* Grace notes, volta brackets, multiple styles for note heads and + time signatures, breathing signs, lyric extenders, cross staff + beaming and slurring. + +* --safe option for the paranoid. + +* More elegant spacing. Text is spaced exactly. + +* Lots of bugfixes. diff --git a/Documentation/misc/index.texi b/Documentation/misc/index.texi new file mode 100644 index 0000000000..8a84edbeb8 --- /dev/null +++ b/Documentation/misc/index.texi @@ -0,0 +1,23 @@ +\input texinfo @c -*-texinfo-*- +@setfilename index.info +@settitle index + +@node Top, , , (dir) +@top + +Miscellaneous texts +@itemize +@item @uref{CHANGES-0.0.txt, Change logs from 0.0 till 0.1 } +@item @uref{CHANGES-0.1.txt, Change logs from 0.1 till 1.0 } +@item @uref{CHANGES-1.0.txt, Change logs from 1.0 till 1.1 } +@item @uref{CHANGES-1.1.txt, Change logs from 1.1 till 1.2 } +@item @uref{NEWS-1.2.txt, summary of changes from 1.1 till 1.2 } +@item @uref{ANNOUNCE-0.1.txt, Announcement of 0.1 (includes summary of +changes)} +@item @uref{ANNOUNCE-1.0.txt, Announcement of 1.0 (includes summary of +changes)} +@item @uref{ANNOUNCE-1.2.txt, Announcement of 1.2 (includes summary of changes)} + +@item @uref{AIMS.txt} +@end itemize + diff --git a/Documentation/misc/interview b/Documentation/misc/interview new file mode 100644 index 0000000000..4526280199 --- /dev/null +++ b/Documentation/misc/interview @@ -0,0 +1,108 @@ +(Oct / 99) + +* What is it? + +In short, LilyPond does for sheet music what (La)TeX does for printed +text: the input describes the music you want printed, the program +processes the input like a compiler, and the output file contains +printed music. + +* Who would use it? + +People who want beautifully printed music, but don't have time to +learn intricacies of music notation. + + * Why would they use it instead of similar projects? + +Within the free software movement, LilyPond is unique: free music +notation software is very scarce, and is either difficult to use, +clumsy or does not give pretty results. + + * Special features/strengths? + +Just like LaTeX, the input format is very abstract, and the output is +very elegant. Additionally, most aspects of the formatting can be +adjusted to taste. + +LilyPond also allows very easy integration with TeX: you can write a +paper that mixes fragments of notation with LaTeX. + +* Special problems? + +Music notation is very complicated. It is much more difficult than +typesetting mathematics which is TeX's forte. Almost everything in +music notation is a "Special problem". + +Generally, the more modern the music is, the more problems it +contains: classical and baroque music like Mozart and Bach should pose +no problems for LilyPond. Romantic music like Brahms and Schumann will +get printed but with some formatting errors. Twentieth century music +like Schoenberg and Bartok can be very difficult to typeset. + +Luckily for most, Pop-music is relatively uncomplicated: it should not +be a problem to print that kind of music. + +* Who is working on it? + +Jan Nieuwenhuizen and me (Han-Wen Nienhuys) have written most of the +core of the program, but the most elaborate example in the +distribution (a 40 page orchestral score) was contributed by one of +our long-time users. He is a member of a small band of developers +that contribute small patches. + + * Plans for the close and distant future? + +The most concrete development plan for now is to use GUILE much more +pervasively: LilyPond started out as a C++ program, with lots of +formatting rules that were hard-wired into the system. We want to +express those rules in Scheme, so that they can be changed at +run-time. + +A much more interesting development is The Mutopia Project: it is a +website where you can download sheet music that has passed into the +public domain. Just think of Project Gutenberg, but then for sheet +music. We hope that in the future you can just point your browser to +Mutopia if you need classical music. + +The Mutopia website has not gone live yet, but you can preview some +scores at http://sca.uwaterloo.ca/Mutopia/. What we need now is lots +of help with entering sheet music. If you like classical music, come +out and help us! + + + + * Interesting/fun stories that might juice up the story? + +Jan Nieuwenhuizen and me have been best friends for a some four years +now. LilyPond development catalyses our friendship, and our friendship +catalyses LilyPond development. We call each other a few times a week +to discuss development, and the most revolutionary improvements in +Lily have often been the result of a long nights of discussions on +software design over glasses of Whisky + +Another question that pops up in outsiders is: ``what do aquatic +flowers have to do with music typography? Why the weird name?'' + +I started Lily (our affectionate name for LilyPond) three years +ago. Back then, I was in an amateur symphonic orchestra together with +Jan. I had a crush on this magnificent girl in the orchestra: her +name was Suzanne, she played both the flute and the cello, and (of +course) I thought she was very pretty. + +At the time, Jan was dating Roos (Dutch for `Rose' -- she also played +the cello). I also knew about about a package Rosegarden (a GUI MIDI +sequencer and notation editor). When I found out that `Susan' is +Hebrew for `lily', I decided that calling the package `LilyPond' would +match make the nomenclature of the rest of my life perfectly. + +Some things don't last---the two girls, the cellos and the orchestra, +all have disappeared from our lives. LilyPond however has survived +over time. It is a big, mature program with a healthy user-base and +good prospects. Best of all is, that we still have a good time +hacking on it + + +* License?! + +GPL, of course. + diff --git a/Documentation/user/properties.itely b/Documentation/user/properties.itely index c750b3af9c..f5ead31c6c 100644 --- a/Documentation/user/properties.itely +++ b/Documentation/user/properties.itely @@ -1,4 +1,4 @@ -@node Properties, , , Top +@node Properties, , , Reference Manual @cindex properties!Lyrics diff --git a/Documentation/user/refman.itely b/Documentation/user/refman.itely index 1ba86f3112..bea07dc13d 100644 --- a/Documentation/user/refman.itely +++ b/Documentation/user/refman.itely @@ -1295,17 +1295,16 @@ chords can be expressed in two different ways: @mudela[fragment,verbatim,center] \notes \context Staff { \cadenza 1; - - <{a b c'}{c' d' e'}> + + < { a b c' } { c' d' e' } > } @end mudela @cindex context selection -@keyindex{context} +@c @keyindex{context} @example - \context - @var{contexttype} [= @var{contextname}] @var{musicexpr} + \context @var{contexttype} [= @var{contextname}] @var{musicexpr} @end example Interpret @var{musicexpr} within a context of type @var{contexttype}. diff --git a/Documentation/user/tutorial.itely b/Documentation/user/tutorial.itely index 35b5dc0cae..5029f7fa34 100644 --- a/Documentation/user/tutorial.itely +++ b/Documentation/user/tutorial.itely @@ -383,6 +383,7 @@ may differ, since the titling in this document is not generated by \include "paper16.ly" melody = \notes \relative c' { \partial 8; + \key c \minor; g8 | c4 c8 d [es () d] c4 | f4 f8 g [es() d] c g | c4 c8 d [es () d] c4 | d4 es8 d c4. @@ -452,12 +453,17 @@ give names to the different parts of music, and use the names to construct the music within the score block. @example - \partial 8; - @end example -The piece starts with an anacrusis of one eighth. @example +The piece starts with an anacrusis of one eighth. +@example + \key c \minor +@end example +The key is C minor: we have three flats. + + +@example c4 c8 d [es () d] c4 | f4 f8 g [es() d] c g | c4 c8 d [es () d] c4 | d4 es8 d c4. diff --git a/NEWS b/NEWS index 66e89bcf1c..5d740e231d 100644 --- a/NEWS +++ b/NEWS @@ -8,28 +8,3 @@ WHAT'S NEW SINCE 1.2.0 * Documentation now all is in texinfo. -WHAT'S NEW SINCE 1.0.17 - -* Large cleanups, enhanced design and GUILE integration for smaller - memory footprint and more flexible code. - -* Direct output to PostScript (optional), PDFTeX or as GUILE script - (default output still to plain TeX). - -* Convertors for ABC and MUP formats. - -* Font: now available as scalable PostScript. New glyphs: time - signature, more note heads. - -* Enhanced input: semi-automatic beaming, (nested) tuplets, (nested) - repeats, chordnames, automatic Lyrics durations. - -* Grace notes, volta brackets, multiple styles for note heads and - time signatures, breathing signs, lyric extenders, cross staff - beaming and slurring. - -* --safe option for the paranoid. - -* More elegant spacing. Text is spaced exactly. - -* Lots of bugfixes. diff --git a/NEWS-0.0 b/NEWS-0.0 deleted file mode 100644 index f936254a1f..0000000000 --- a/NEWS-0.0 +++ /dev/null @@ -1,1170 +0,0 @@ - -This file documents changes in version 0.0 - -august 1 - -VERSION 0.1.0 - - - bf: output tempo to track 0 too - - bf: don't forget to copy id_str_, so moved into Music - -pl 78.jcn2 - - INFTY doze fixes - -pl 78.jcn1 - - fix for multi-staff midi: wohltemperirt.ly, standchen.ly - - doze fixes - - bf: conflily, configure (text) -***** -july 31 -pl 78 - - bf: Midi_instrument - - added enable/disable defaults to help. - - incredibly ugly NAME_MEMBERS(); bug. Immediately changed to -DECLARE_MY_RUNTIME_TYPEINFO; - - \stem -1 -> \stem \down in input - - bf: slurchar index - - configure warnings - - preliminary stuff for multiarch building - - #!/usr/bin/perl fixes (AO) - - some Makefile cleanups: now faster. - -pl 77.jcn2 - - Midi_instrument - -****** -july 29 -pl 77 - - some fixes for internal compiler errors -derive from Pointer_list with default dtor gives error with -O2 - - .ini -> .ly - - lyrics fix - - Performer beautification: got rid of set_track(), midi_output() - - pseudo RTTI for midi-items - - bf: Performer*::print() - - links.pod - - Voice_element -> Request_chord - - fixed flex problems: stdin input works again - - Documentation/Rules.make, make-website via make - - spacing: now add basicspace - -******* -july 28 -pl 76 - - mudela version bumped to 0.1 - - mudela-book - - doco updates, now some stuff in LaTeX - - junked book.{ly,tex} example - - progress indicator - - rhythm.ly updated - - removed mf sources from distribution due to (c) stuff - - allowal of breaks handled cleanly - - junked Subtle_reqs, junked Request_iterator. Request - iteration now by Voice_element_iterator - - Piano_bar, Piano_bar_engraver, Span_score_bar_engraver, - Span_score_bar - - Swallow_performer - - removed Staff_engravers, grouping into Line_group_engraver - - Head_column as base for Rest_column,Note_column - - Score_column derived from PCol - - regurgled Line spacing: interface and implementation - separate. Idealspacing moved into Spring_spacer - - Gourlay style linespacing - -pl 75.jcn6 - - {lyric,meter,key}-performer - - span-brace-* (Removed again. Such is life) - - doze compile - - midi output, notes only - - working midi output -- hacked - - doze compile, mingw32 configure (still triggers gcc int. comp err) - -pl 74pre.jcn2 - - mi2mu fixes after scott snyder [sss] - - mi2mu update for mudela 0.0.61 - - conflily fixes - -******* -july 21 - -pl 75 - - inbook.ly & book.tex example. - - natural width: linewidth = -1.0\cm - -pl 74pre.jcn1 - - oversimplified midi output thru performer hierarchy - - bf: Spanner::doprint - -pl 72pre.jcn1 - - naming fixes; some iter*() explicitations - - removed acceptor.hh - - *performer*: second draft of midi (audio/...) - -******* -july 9 - -pl 74pre - - Input_engraver -> Input_translator - - bf: span start/stop is now a "used" col. - - Rest_column/Rest_collisions bugfixes - - bf: crescendi. - - Spanner do_print() - -****** -july 7 -pl 73pre - - some refs doco. - - move Input_engraver into Paper_def - - junk Interpreter - - naming: Request_engraver -> Engraver, - - Music_iterator::next() -> process_and_next() - - junk Voice_engravers - - Span_bar, Span_bar_engraver - - Vertical_align_engraver - -******* -july 2 -pl 72pre - - \paper{} syntax: var = 1.0\pt;, with an Assoc array - - sketch of MIDI Performer classes. - - bf: memleak in parser - - naming: Acceptor -> Translator - - input: bf collisions.ly, scales.ly - - bf: [r8 c8] - - naming: Register -> Engraver - - force \\ on identifiers - - doco updates - - musixtex T73 fonts - -pl 70.mb - - bf: find syntax in Variables.make -***** -july 1 -pl 71pre - - nested \melodic and \lyric constructs - - init id's, Input_register aliases. - - bf: notehead x-swap - - bf: auto-keys. - - bf: first clef - - junked \init_end; construct - - Preparatory work for MIDI output: - * Acceptor as baseclass for Register_group_register - * Global_acceptor as interface of Register to Score - - bf: empty voice - - Lyrics: partially working - - some doco updates (junks, mostly) - - -****** -june 30 - - -pl 70pre - - bf: text Script - - bf: Script::dir_i_ checks. - - bf: script stacking - - bf: Text_spanner::do_subst. - - bf: Text_spanner::Text_spanner(Text_spanner&) - - bf: script priority read from script.ini - - bf: Script_def::do_equal_b - - bf: script dims. - - mudela: ; obligatory for \paper {}. - - some cosmetic changes involving RTTI macros - -******* -june 29 -pl 69pre - - bf: whole rest position, whole/half rest dots. - - bf: scripts - - reg termination - - centered bars - - bf: init of Tie::dir_i_ - - bf: Staff_side depends on staff_sym_ - - bf: Script::do_substitute_dependency() now implemented - - more print info (also in output) - - bf: Vertical_align_element - - stemless beams now allowed (with warning) - - bf: Rest_column::stem_l_ init - - merge rests.ly with collisions.ly - -pl 67.jcn3 - - rests under beam [c8 r c] - -pl 67.jcn2 - - first attempt at rest collisions - - rests.ly - -pl 67.jcn1 - - beam stem length: beams.ly - - bf: mingw configure - - re: conflily - -****** -june 26 -pl 68pre - - doco: other-packages.pod, lots of lilyliterature.pod - - last duration mode now is default. - - some OpusTeX stuff. - - bf Y2K in convert-mudela - - Grand rewrite of Music/Register stuff: - * separation of Y and X-elt-groups - * Registers: info up: broadcasts, info down: get_xxx_info() - * Registers: try_request works from bottom to top of tree. - * Score_elem empty_b_ and transparent_b_ flag - * Junk Staff_column, and find the requests while walking the - Voices. - * Score_register - * Staff_group, Score_request_register. - * align key/Meters/bar across staffs - * junked Staff, Staff_column, Staff_walker, Complex_walker, - Request_column Pulk_voice, Pulk_voices, Walker_registers, - Voice_element, - Input_score, Input_staff, Input_music and a lot of - parserjunk. - * mudela: lots of structure changes : now much simpler - * generation of pre/postbreak items now in Score_elem with deps. - - - bf: make_patch explanation - - bf: make install TeX stuff - - mudela: . mandatory for REALs - - -pl 67 - - damped beamslope after wanske - -****** -june 3 -pl 67 - - sketch of Music classes - - General_script_def as baseclass for Text_def and Script_def - - bf: clean lib/out/liblily.a - - bf: rests shorter than 1/4 - -pl 66.jcn3 - - bf: make uninstall - - conflily - - f: some pedaling - - plet hack removed :-( [ c c c ]2/3 -> [2/3 c c c ]1/1 - -pl 66.jcn2 - - bf: bar, Hilfslinie - - bf: configure for mingw32 - -pl 66.jcn1 - - WIN32 -> WINDOWS32, more win32->windows32 - - some GNU/Linux changes - - cygnus b18 / mingw update - - doze compile; bf: p-score.cc compares - - reincluded toccata fixes - - small stuff: vi tags, typos, bibl - -****** -may 27 -pl 66 - - make_website --jpeg, --png and --gif - - win32 -> windows32 - - bf: Score_elem::TeXstring assert fail - - bf: headswap with stemdown - - bf: broken tie - - bf: broken slur - - bf: accidental dims - - bf: measure bar width - - -****** -may 26 - -pl 65 - - bf pathfind /root/file - - massive Score_elem rewrite: - * group_element_i_ count - * support for removing an individual Score_elem cleanly. - * moved dep stuff into class Directed_graph_node - * Score_elems can be copied and deleted freely. - * junk PStaff - * Spanner_elem_group - * Line_of_{score,staff} now are Score_elems - * clean dep handling upon deletion - * delete unbroken spanners - * added a break_processing round. - * Super_elem - - junk Complex_staff, - - clean {lily}?proto.hh - - Element_group - - Score_elem now as virtual base class everywhere - - naming: Staff_elem -> Score_elem - - bf: make in toplevel dir - - bf: broken tie y-pos - - bf: sharing 4th, 8th and 16th noteheads - - bf: overlapping chords. <\multivoice c d > - -pl 64.wl - - new stem direction code - - bfs: wohltemperirt.ly (thanks, Werner) - - bf: stem direction - -pl 63.jcn2 - - doze compile - -pl 63.jcn1 - - bf: mi2mu mudela commands - - bf: mi2mu tracks - - mi2mu quantify tuning - - mi2mu TODO - -********* -may 16 -pl 64 - - exe's now built in out/ - - toplevel Makefile dep from make/Toplevel.make.in - - make_website: add version footer - - make_website: bf dist *.txt - - bf: fix loose bars : \meter 4/4; c1. - - Staff_elem -> Score_elem - - bf - - vbrace lookup - - resync barcheck - -******* - -may 15 -pl 63 - - bf: segfault during MIDI output with mi2mu output. - - kludge: parse error beyond eof - - don't read ini if toplevel file not found - - accumulate \kern in TeX output. - - bf: try to prevent long lines; TeX breaks on them. - - naming: Pointer->Link, IPointer->Pointer - - bf: \plet didn't work (MB) - - GMP manifesto. - -pl 61.jcn4 - - mi2mu -p -s16 fugua2.midi getting better! - plus factor 2 mi2mu speedup (fugue2.midi 5.50user) - - bf: Duration_convert quantify threshold down - - bf: (on quantify): tcols quantified; no silly voices - -pl 61.jcn3 - - lily parsing speedup: backup rules for lexer.l - - bf: mi2mu, using midi_voice list... - -pl 61.jcn2 - - all in all mi2mu speedup of about factor 8 since pl61 - (fugue.midi 82.72user to 10.30user on a 586.133) - what about lily? - - binary search on track-columns - - mi2mu IP*list to Array (implications?!) conversion - - mi2mu parsing speedup: backup rules for midi-lexer.l - - bf: zero denominator - -********** -may 14 -pl 62 - - make clean bf: remove lex & yacc files too - - added kludge in case measure too long - - added kludge in case of unconnected columns. - - kludged columns get error marker - - kludged lines get error marker - - -pl 61.jcn1 - - smarter + faster duration-convert using Array - - bf: mi2mu compilation/duration-conversions - - lots faster mi2mu, hopefully does type 1 too... -pl 60.jcn1 - - mi2mu handles non-quantified rests, try mi2mu -b wtk-i/fugue2.midi - - - -********** -pl 61 - - scales.ly bugfix: dimensions default to ((0,0), (0,0)) - - naming: PointerList->Pointer_list - - tied notes don't get accidental - - bf: crescendo size - - fixes: make_patch, - - bf: _"text" direction - - mailing list into lilypond.pod - -pl 60.mb - - set_flower_debug: Warning if -d is used when NPRINT is defined. - - Fixed several TeX details. vcenter renamed since it interfered - with LaTeX. Position of accents changed. - - New example; scripts.ly - - table_sixteen: added scriptdefinition (Lilypond breaks if a - script is defined without dimensions). - - bf: ifndef typos in p-score.cc, choleski.cc - - bf: Slur::do_post_processing(), whole notes caused SIGSEGV. - -(ascension break :-) -******* -pl 57.jcn4 - - mi2mu handles rests (quantified only) - - fixed configure buglet - - "!date" Fri May 2 02:18:12 MET DST 1997 - -pl 60 - - Request_register::get_feature(), tie direction, Slur direction - - lilypond output is now directly texable. - - make_website checks return status - -******* -may 5 -pl 59 - - Slur now into voicegroups, and take stems into account. - - bf: rest size in table. - - split Slur in baseclass Bow - - Tie, Tie_req, Tie_register - -****** -may 2 -pl 58.jcn1 - - bf: toccata-fuga-E.ly - -pl 57.jcn4 - - mi2mu handles rests (quantified only) - - fixed configure buglet - - "!date" Fri May 2 02:18:12 MET DST 1997 - -pl 58 - - lexer cleanup - - national chars in lyrics - - \stem 2; bf - - long comments: %{ %} - - *.ini mode bf - - bf: partial may be everywhere - - bf: meterchange not at start of measure - - some doc updates - - bf: stem too long if stem is down. - -pl 57.jcn3 - - dank je schat, voor wtk-i - - mi2mu tries to handle rests - - "!date" Thu May 1 02:34:04 MET DST 1997 - - maak je het niet te laat schat? - XXXX HWN - -pl 57.jcn2 - - small toccata-fuga-E.ly fixes - - \bar "||"; is now doublebar, "|." is finishbar - - collision hshift fix, with on-line assistance -****** -pl 57 - - lots of TODO doco - - text alignment bugfix - - bugfix Voice_group_regs::get_register_p() now is actually called too - - bugfix init of Text_item::pos_i_ - -pl 56.jcn1 - - toccata-fuga-in-E.ly, excerpts with real-life collisions - - \{l,r}{b,f}{toe,heel} --- using cmsy fonts... - - pedal.ly - -pl 55.jcn1 - - mi2mu man page - - make doc fixlet - - \[lr]heel \[lr]toe scripts (happy pedal studies, pa) - - lyric with width - - removal of some example files - -pl 56.mb: - - last duration fix - - makefile fixes - - space rest - - swedish note name update - -****** -pl 56 - - Massive Rest/Stem/Collision/Note_column rewrite: resolve -notehead/rest ambiguities and bugs. eg, [c8 r8 c8] - -pl 54.jcn1 - - standchen.ly: repeats; lyricii to end - - convert-mudela: help + usage - - fixed midi key/meter-change (triggered by martien.ly) bug - -****** -April 23 -pl 55 - - staff-side robustification - - script-on-rest bug - - doc update - - transpose syntax -****** -pl 54 - - bugfix Colhpos.cc::OK assert fail. - - Inclusion of MusixTeX MF files, - - detection of MF dir -pl 53.hwn - - stacked lyrics - - configure/make buglets. -****** -pl 53 - - spurious accidental bug. - - simultaneity check. - - added AUTHORS.pod - - convert-mudela auto from guess - - include -> \include - - change order of opening parse/init file - - Pulk_voice, Pulk_voices - - Request_column - - revised request-from-voice extraction. Now much faster - -****** -april 17 -pl 52 - - Buildroot RPM - - tex-prefix and tex-dir sep'd (here you are jan) - - convert-mudela framework - - Collision_register, Collision - - \hshift 1; input - - Features changed -pl 50.jcn1 - - LILYINCLUDE dir searched before DIR_DATADIR(?) - - lily reads from stdin again (but does not now when to stop) -****** -pl 51 - - transposition bugfix + doco - - LilyPond -> GNU LilyPond - - bugfixes for Staff_side and Note_column* - - wohltemperirt: complete - -****** -april 11 - -pl 50 - - merge rest / notehead. - - Staff_side as a base class for most "staff-side" symbols. - - version check - - Note_column_register, Note_column - - multiple scripts - -******** -april 8 -pl 49.jcn1 -Bugfix - - configure[.in], make/Configure_variables.make.in c++ (=doze fix) - - "configure; make" ok for doze, win32 target may be removed now - - win32/gcc 2.7.2 compile fixes -- why does this all compile - (without warnings, why can-t i even trigger warnings) under - linux/gcc-2.7.2.1? it's quite a tedious job fixing this - shit _on doze_ all the time. - * fixed #includes global-regs.cc, staff-info.cc, staff.cc - * key.hh:Key() -> Octave_key() - * added missing lily/include/input.hh: Input( Input const& ) - -pl 49 - - lsm template - - clef in cadenza mode. - - notename clear - - \command bla; for \meter, \clef, \octave etc. -******* -pl 48 - - notenames init - - Duration order -> grouping - - broken key s - - default octave - -****** -april 3 -pl 47 - - dynamic flowerlib - - Input mods: now use Source_file iso Sources - - makefile lib deps restructured - - make_website now produces in out/ - -pl 46 - - examples.pod - - LILYINCLUDE env var. - - push/popgroup - - website updated - - Swallow_register - - Lyric_register. - - Staff_sym_register - - user settable register config - - struct Input now used iso defined_ch_C_ - - Walker_registers and Staff_registers separated - - dynamic-reg -> hairpins - -pl 44.jcn2 - - doze configure/compile fixes - - doze make refixed - - faq - - install mudela manpage too - - RedHat spec lilypond.spec fixed - - target: rpm (make RedHat packages) - -****** -Mar 26 -pl 45 - - Removing unused Voice_regs & Voice_groups - - -O2 bugfix - -pl 44.jcn1 - - merged 42.3 42.jcn4 code trees (see stuff below) - - moving towards Mudela 0.1 (again) - * keyword "music" dropped for horizontal music - * keywords "\lyric" "\melodic" introduced, e.g.: - melody = \melodic { c c | g g } - * removed level of indirection: - - staff initialisable with music identifier list: - \staff{ global melody } - - \score and staffs alike - - gnu standard(?) help texts - - configure "creates" toplevel Makefile from make/Toplevel.make - -Bugfix - - fixed mi2mu - - write meter to track0 too... - - default octave - - new Sources in My_midi_lexer: sourcefile_p_ = get_file_l(): oeps. - (ain-t hungarian grand?) - -Examples - - updated for mudela 0.1 - -****** -pl 44 - - naming: _c_l -> _C - - pure parser, My_lily_parser - - ''a iso ``a - - Includable_lexer - - junk Input_file - - Duration in parser, Duration restructuring - - grandiose lexer hax. Flex should be fixed, really. - Lexer much faster now. - - opps. mi2mu broken - -****** -pl 43 - - transposition. - - $variable&@name - - warnings if incorrect mode - - missing scsii measure - - declaration used check. - - - -pl 42.jcn4 - - lily writes midi meter/key changes from requests - - mi2mu: - + write mudela 0.1 - + write bar change requests - + more tunable quantisation - -Examples - - half-new-menuetto.ly converted to mudela -almost- 0.1 - - new mi2mu of bach's wtk pre1/fugue1 - -pl 42.3 (jcn version) - - oeps, branched source tree - -pl 42.hwn3 - - const naming change (T const <-> const T) - - Mudela 0.1 (roughly the same as below..) - -pl 42.3 - - moving towards Mudela 0.1: - * all keywords must be preceded by backslash '\' - * explicit lexer switches '$' and '@' dropped - * keyword "music" dropped for horizontal music - * keywords "\lyric" " introduced, e.g.: - melody = \melodic { c c | g g } - * staff initialisable with music identifier: - \staff{ melody } - * chords: < c e > - * octavate ''c`` - * \meter{ 2/4 } - * \octave{ ''`` } - - configure sets CXX (to c++, commonly) -Internal - - renamed lexer.hh, mylexer.cc My_flex_lexer to my.lily.lexer.* - -pl 42.2 - - new lilyinput (Mudela 0.1) doc. -Examples - - new-twinkle.ly (in Mudela 0.1, hopefully) - -pl 42.1 - - further Makefile revamping. - - moved flowerlib - -******* -pl 42 - - -pl 41.hwn3 - - struct Lexer_prefs - - parser bug - - make uninstall - -pl 41.hwn2 - - make file rehack - - spec update - - make install - - detect TeX directory - -pl 41.hwn1 - - cygnus configure, - - updated versioning - - install.pod - -pl 41.jn1 -Bugfix - - doze compile -******* -pl 41 - - release - -pl 40.3 - - all of the above - - hw's configure.in - - p-name.xx fixes - -pl 40.hwn1 - - hairpin dynamics - - notename now as identifier. Parser/lexer cleanup - -pl 40.2 - - mi2mu --blonde-durations, --no-silly options. - - mi2mu starts to look promising, see examples -Examples - - pre1.midi.ly, fugue.midi.ly -Internal - - Duration handles blonde midi-durations - - More settings for Duration_convert - - lily writes meter too (ugh, howto?) -Bugfix - - mi2mu auto track number fix - - mi2mu / lily Midi_tempo fixed/added - -pl 40.1 -Bugfix - - lily midi output track 0 name - - mi2mu tempo fixed - - make out/make and out/make/Site.make in configure script! - - mi2mu double newline fix - - -****** -Mar 11 -pl 40 - - release - -pl 39-5 - - own versioning for mi2mu: 0.0.10 - - some file renaming mi2mu -pl 39-4 - - all of the above - -pl 39-hwn2 - - last bar bugfix -Internal - - simple dynamics - - experimental RPM spec. - - doco update. - -pl 39-3 - - all of the above - - m2m renamed to mi2mu - - better line breaking in mi2mu - - (somewhat broken) progress indicator for mi2mu - - mi2mu output === lily input (in names and durations, - always assuming voices > 1 though) - -Bugfix - - midi: note on/off only once per pitch per track - (sending all note-on events introduces cool mi2mu feature) - - make clean removes deps too - - mi2mu notename/accidental/octave, and key fixed - -Internal - - auto create of out-dirs, config headers, using tag file .GENERATE - -Examples - - stanchen.ly debugged - -pl 39-2 - - configure script help and in topdir again, duh. - - auto configure upon virgin make - - configured makefile stuff in make/out/ - - -******** -pl 39-1 - - doze target (for 16 bit dos xcompiler: gcc-go32) -Internal - - make/User.make; C..FLAGS sorted out -Bugfix - - make clean... - -pl 39 - - new make structure, featuring: - * top-level/sub-level build - * auto custom-library dependencies/build - * top-level/sub-level dist - * minimal(? can even smaller) specific Makefiles - * which makes for simple lib/exe module split (make/Template.make) - * integrated flowerlib - * all stuff into subbirs (make/Stuff.make) - * all headers into /include dirs (make/Include.make) - * all output into /out (executables into bin/) - * more make features, like make config, make help - * small lily lib - * lilypond-x.x.x/.version for toplevel lily version - * lilypond-x.x.x//.version for version (eg: flower) - * versioning using additional optional MY_PATCH_LEVEL - for easy make_patch - - - bin/cptogen - -Internal - - generic m2m header: m2m.hh - -Bugfix - - small fixes, make, dist, configure - -pl 38-5 - - all of the below, e.g. new filenames and new makefile - structure patches merged -****** -pl 38 - -Internal - - great filename renaming operation with - convention. - - printing methods for paper_def/lookup/symtab(s) - - untied all registers from complexwalker. Now registers are -intrinsically hierarchical. All walker communication is done via a -"top level" register. - -pl 37-3 - - m2m handles voices - - instrument, track_name, copyright/left stuff for m2m/ly - -Internal - - Midi_voice - -pl 37-1 - - text, key, tempo event in midi output/ly input - -Internal - - simple makefile structure, allows for multiple projects - -****** -pl 37 - - -Documentation - - language.pod as starting point for mudela devel. - - - Jan's patches: -Features - - m2m patchy --no-triplet option; - lilypond accepts m2m's real midi output (hand-add red tape) - - m2m output only valid durations, resync option wip - - m2m produces .ly output -Internal - - simpler and better naming for Duration* - - the great String renaming / index to base=0 change - - Track_column, Lily_stream - - Duration, Plet, Duration_convert taking load off duration calc. -Bugfix - - m2m duration calc - - - -****** -pl 36 - - Jan's patches: - - do MIDI rests cleanly. - - lily/m2m: time and tempo fixed for metric timing -Internal - - Midi_tempo - - m2m parses more midi stuff (all of bach-wtc); timing?? - - m2m recognises some commandline options -Examples - - fixed midi.ly - -******* -Feb 25 -pl 35 - - Register_group -Bugfix - - alignment of breakable items. - -******* -pl 34 - - better midi syntax. - - --midi,-M option. - - preliminary midi2mudela (/mudela2midi) converter: m2m (JCN) -Internal - - m2m sources: midi-*; (JCN) - - new Midi_walker, fixes several MIDI bugs. - - junked Midi_staff, Staff_column children, Midi_walker - - Midi_output - -pl 33-1 - - m2m parses midi -Internal - - Binary_source_file - - Source_file::error_str simplified -******* -pl33 -Examples - - Swedish notenames (MB) - -pl pre33-2 - -Bugfix - - midi pitch - -Features - - Jan's patches, see below -Bugfix - - some midi bugfixes. - -pl pre33-1 (JCN) - - - - midi output using pitches iso notename -Examples - - added midi output (some midi output files broken?) - - all melodic fixed (except for error.ly:-) - - midi.ly -Bugfix - - midiwalker line break - - empty/nonexistent include at top of ly - - midi #tracks - - midi pitch c0 - - midi poor man-s staff dynamics -Internal - - Midi_column, Midi_staff, Midi_walker - -pl pre33 (JCN) - - Jan's patches, see below - -Features - - simple plet notation (JCN) - - lyrics centred, but no fully suppored? (JCN) -Internal - - Midi_stream - - Mididef - - Midi_item, Midi_pitch, Midi_duration - - Midi_chunk, Midi_header, Midi_track - - preparations for midi output - - no exit upon context error (JCN) - - converted some "warnings" to errors; no output (JCN) -Bugfix: - - simple plet bugfix -Examples - - updated standchen, menuetto (JCN) - - new plet notation (JCN) - - plet.ly (parse and spacing tests) (JCN) - -******* -pl 32 -Features - - multiple meters, see rhythm.ly - - skip syntax/Skip_req - - score_wide_music: commands in staff now override commands in score. -Internal: - - command carnage - - Key_register - - Bar_register - - Meter_register - - meters now kept in baseclass Staff_walker - - Score_walker (to ease MIDI output) -Doc: - - Hungarian doco added to CodingStyle - -pl 32-1 - - music processing speedup - - website added to doco - - clef must *inside* music - - fixed spurious "beam too narrow" messages. -Internal: - - merge musical / non-musical staff_column - - musical/ non-musical requests - - Clef_register - - split up request.hh, Musical_req vs. Nonmusical_req -******* -pl 31 - -Examples - - Coriolan example (JN) - - standchen updated -Bugfix - - calcideal assertion bugfix -******* -Feb 12 13:55 -pl 30 - -Features - - better multivoice spacing - - move rest in multivoice staff - - errors in TeX output now warnings - - progress indicator - - music processing speedup. -Internal - - make spanner for staffsym; scrap Line_pstaff - - scrap simplestaff (Rhythmic_staff temporarily disabled) - - docxx 3.0 format comments - - split register source files - - hardcoded dimensions compile time - - Lookup::tex_hairpin -Bugfix - - non G-clef clefs - - script junking (2x) - - empty files - - beam::center (plet position!) - -pl 29 - - multiplatform Makefile (JN) - - context errors: bugfixes (JN) -******* -pl 28 - -Internal - - idealspacing slightly better for multivoice. -Doc - - Request_register -Bugfix - - Script.cc : float exception (MB) - - Request::Request(Request) copying of definition pointer (JN) - - cleaned dependencies for broken spanners - - stupid typo in Staff_elem::post_processing() - - init of hpos in PCol::PCol - - Word_wrap::solve() bug -******* -pl 27 - - preliminary WIN32 support (JN) -Features - - errors converted to warnings (JN) - - context errors (JN) - - As vs. as notename. - - WARNING: "melodic" stafftype will create the new Complex_staff! -Examples - - Lohman's Viola Quartet (JN) - - JS Bach Solo Cello suite II menuet (JN) - - -pl pre27 - -Features - - option --init - - last_duration_mode: default_duration is last duration entered - (\duration{\last}) - - syntax: grouping 2*4 3*8 - - preliminary multivoice support -Examples - - JS Bach's WTK example added. - -Internal: - - Text_reg and Script_reg -******* -pl 26 - - Documentation/lelie_logo.png - - 8-bit chars for input (see ltest.tex) (MB) - - quotes around string now optional -Bugfixes: - - unmatched ] (MB) -Internal: - - print/name methods of Staff_elem - - added Request_register - - Voice_group_registers, Voice_registers, *_register - - Complex_staff -******* - Jan 27 '97 -pl 25 - - other clefs added, keys typeset properly (MB) - -******* -pl 24: - - Lyrics (JCN) - - Commands in music-mode (an input feature) (there you are, Mats) - -******* -pl 23: - - TODO file inc'd - - cadenza mode. - - default extension, search path. - - error.pod,faq.pod - - Markers - - configure script - - inputfile name in output. -Internal changes: - - scrapped VPATH - - Make dependencies per .o - - Split Input_* parsing steps to enable marking -Bugfixes: - - unconnected columns - - -******* -pl 22: - - doco from mpp - - repeat signs - - | checks for bar in a voice (Barcheck_req) -Internal changes: - - naming (Hungarian notation, svec vs. Array) - - cleanup PScore, Score - - removed Staff_commands, plugging commands into Staff_column directly -Bugfixes: - - bug noteheadswap - - huge memleak fixed; unearthed lots of bugs - -******* -pl 21: - - scripts - - texts - - nplets (triplets!) -Internal changes: - - Move breaking stuff into a separate class Break_algorithm - - dependencies for Staff_elem's - -******* -Dec 23 -pl 20: - - updated doco to .pod - - include files from .ly -Internal changes: - - Rational for time measurement - - directionalspanner/textspanner - -******* -pl 19: - - grouping code: LilyPond can set advanced multibeams. -Internal changes: - - struct Moment - -******* - -pl 18: - - robust Staff_commands - -******* -pl 17: - - robust Input_commands - - merged Vertical_/Horizontal music - - PARTIALs with duration - - modularized lexer: multiple runs - -******* -pl 16 - - notenames configurable - -******* -pl 15 - - grouping code - - multibeams (simple) - -******* -pl 14 - - symtables from .ly - - Input_command - - Input_{score/staff} - -******* -Dec 2 -pl 13 - - Horizontal/Vertical music - - Input_commands diff --git a/NEWS-0.1 b/NEWS-0.1 deleted file mode 100644 index f5e3562839..0000000000 --- a/NEWS-0.1 +++ /dev/null @@ -1,2141 +0,0 @@ -August 1 - -VERSION 1.0.0 - - - scsii-paper: no wordwrap - - bf's: texinfo - -pl 85.jcn2 - - ONEWS -> NEWS-0.1 - - bf: zip: list of docfiles - - bf: install info - - bf's: rpm spec - - website ok - - mudela version bump -> 1.0.0 - - bf's: '[a-g] -> , - - bf: broken.ly - - ly2dvi fixes, (PC) - -pl 85.hwn1 - - search & replace: jan@digicash.com -> janneke@gnu.org - -pl 85.jcn1 - - website fixes - - debian fixes (thanks, Bastian Kleineidam) - - some (yet unfinished) doco - -********* -pl 85 -july 30 - -pl 84.hwn4 - - revamped install directions. -pl 84.eb1 - - key undo - -pl 84.hwn3 - - misc scsii fixes. - - doco fixes - -pl 84.jcn3 - - bf: titledefs without poet - - scsii fixes - -pl 84.hwn2 - - don't make key items if no accs present. - - Oops. Lyric spacing should go to the right (and not left) (thanks, PC) - - barnumbering break priority. - - bf: tied chords - - 16pt init for yodl-mudela - - split span-score-bar.{cc,hh} - - junked most experimental_features_global_b stuff - - revised AUTHORS.yo - - dot stuff. Added a Dot_column_engraver (thanks, Mats) - -pl 84.jcn2 - - ly2dvi fixes - - w32/install doco fixes - - mutopia fixes - -pl 84.hwn1 - - fixes for ly2dvi + titledefs (Peter Chubb) - - merge Span_dynamic_reqs too - -pl 84.mb1 - - MF: Added breve and longa rests. - -pl 84 jcn1 - - top website - - ps-to-gifs: TRANSPARENT_IS_BROKEN (ppc hack) - -pl 84.uu1 - - doco fixes - -************* -pl 84 - -pl 83.jcn5 - - bf: typo mudela-doc - - long getopt all the way - -pl 83.hwn5 - - doco fixes - - bf: initialise axis_ filed of script - - separate versioning for mi2mu and flowerlib dropped. - - split bin/ in buildscripts/ and scripts/ - -pl 83.jcn3 - - egcs ICE stuff. - -pl 83.jbr2 - - lily/midi-stream.cc: added appropriate MODE options to open - midi output as a binary file. This should be pretty harmless. - - lily/lexer.ll: added \r as white and black space to enable - W32 native editors. This also should be harmless. - -pl 83.jbr1 - - flower/lgetopt.cc: report method fix. (String + char needs to be - fixed) - - -pl 83.hwn4 - - stepmake := stuff - - -pl 83.hwn3 - - \property maxVerticalAlign, minVerticalAlign tunes vertical - staff distances. See input/test/vertical-align.ly - - bf: scripts over chords. (thanks, PC) - - revamped aligning stuff: Align_element is baseclass - for Horizontal_align_item and Vertical_align_spanner - - bf: Clef_item with _8 does new/del correctly. - - more file renaming -elem -> -element - -pl 83.hwn2 - - doco fixes (thanks, Lambert) - - tieydirection,slurydirection overrides ydirection (thanks, PC) - -pl 83.jcn1 - - bf: stepmake - -pl 83.hwn1 - - rm'd clean-embeds.sh - - rm'd \octave from all examples. - -pl 83.uu1 - - mi2mu output mudela 0.1.21 - - meter -> time_signature - - bugfixes for mi2mu, divide by zero error. (thx, JBR) - - -******** -july 23 - -pl 83 -pl 82.hwn2 - - \musical_pitch -> \musicalpitch (mudela 0.1.21) - - meter -> time_signature, - - \meter -> \time (mudela 0.1.21) - - moving around files : -grav -> -engraver - - doco fixes - -pl 82.jcn5 - - doc make fixes; stepmake 34 - -pl 82.jcn4 - - lots of doco build/install/website fixes - - junked some doubles from doco - - - mi2mu syntax to 0.1.20 - - bf: mi2mu col creation - - bf: stream << '\t', int - - bf: mi2mu version - - bf: font-body.ly - -pl 82.jcn3 - - bf's: diff/stepmake - -pl 82.jcn2 - - bf: slur blow - - tie/slur ydirection - - makeflags / diff fixes - -pl 82.jcn1 - - rejects: verbatim copy of Coriolan from 81.jcn2 - -pl 81.jbr2 - - Documentation/README-W32.yo: Additions to section 2 - -******* - -pl 82 - -pl 81.jbr1 - - NT fixes for release target - * stepmake/stepmake: %=--% => %=% in diff target - Cygnus make with MAKE_MODE=unix forces a MAKEFLAG of --unix. - This results in a ----unix switch being passed to package-diff. - This may break normal operation of this target. - * stepmake/bin/package-diff.py: added a do nothing option --unix -pl 81.jcn2 - - bf: abbrev - - found ugly slur bug - - egcs workaround - - more Coriolan fixes - - half-beam fix - -pl 81.hwn2 - - lots of vocabulary - - break_priority_i_ fixes: barnumbering, marginstuff, marks now work more or less - - wrote lilypond-docs RPM spec - - major brainsurgery: class Graphical_axis_group: - * derive Axis_group_element from Graphical_axis_group, - * derive Graphical_axis_group from Graphical_element - - junked input/minimal.ly - - -pl 81.hwn1 - - cleaned up parser.yy (removed \textstyle from parser, other stuff) - - Slurs have height too. - - typewrite textstyle - - added error rule to music. - - Documentation/pictures/ subdir - - Documentation/topdocs/ subdir - - -pl 81.jcn1 - - coriolan fixes. - -****** -july 16 - -pl 81 - -pl 80.jcn1 - - Coriolan: bulk remainder of strings - -pl 80.hwn1 - - junked coriolan-alto.ly - - the great Search & Replace - * Score_elem -> Score_element - * hanwen@stack.nl -> hanwen@cs.uu.nl - * Colinfo -> Column_info - * add () -> add_xxxx () - * Col_hpositions -> Column_x_positionso - - lily-proto.hh cleanup - - moved Dot_column creation. Dot bug fixed - - typos README-W32 - - ADD_THIS_TRANSLATOR uses templates now. - -pl 80.eb1 - - accidental transposition - - -******* - -pl 80 - - some make vs $(MAKE) bugs - -pl 79.hwn1 - - bf lily/VERSION depends on toplevel VERSION - - bf postbreak_only scripts - - Staff_side now is horizontal too - - rm'd \octave in scales.ly - -pl 79.jcn2 - - w32 support doco (JBR) - - bf: install info - - truncated some very long filenames (not bo length) - -pl 79.jcn1 - - bf: ps-to-gifs - - html fixes - - more italian (TDM) - - more coriolan - - -********* -pl 79 - -pl 78.hwn2 - - reversed some of the beyond-too-ugly hacks for script/staffside. - - bf: Axis_group_element::access_Axis_group_element () (2nd fix for Hara_kiri) - - more .bib stuff. - - more doco, lots of small fixes for .yo stuff. - - -pl 78.jcn2 - - bf: make docxx - - some doco/website fixes -i - screenshots for website - - fixed locale - - v78 - - w32 doco - -pl 78.hwn1 - - more bib fixes - - uniformised virtual accessors for Score_elem children. - - bf Hara_kiri seg fault - - changed left == right spanpoint assert into warning - - changed Lyrics.textstyle to Voice.textstyle where appropriate - -pl 78.jcn1 - - counter fix - -************ - -pl 78 - -pl 77.hwn1 - - Key transposition (MB) - - move .dstreamrc to dstreamrc - - make website fixes. junked z.yo, language.yo - - split off computer stuff from engraving.bib - - articles from CMJ added to computer-notation.bib - - doco fixes - - syntax of \skip and \partial changed; take only single durations - - - -pl 77.jcn2 - - mark placement - - w32 doco - - html-footer: (PACKAGE)_COUNTERPATH - -pl 77.jcn1 - - doco, bib fixes - - fixed \mark A; \mark 12; - -pl 77.hwjc - - dropped perl - - py fixes - - -pl 77.uu1 - - \textstyle obsoletized, use \property Voice.textstyle now. - -******* -pl 77 - - bf: install info - - bf: key-grav.cc: ambiguous conversion - - bf: mudela.yo glossary em() -> \emph{} - -pl 76.jcn1 - - irix compile install fixes, .bib stuff (HWN) - - bracket bit lighter - - brace/bracket placement - - minor fixes in key code - - small website fixes - - invocation mudela-book - - try at bracket/brace placement - -pl 75.mb1 - - Introduced real key names, \key e; gives E major! - - Previous use of the \key command now called \accidentals, - \accidentals fis cis gis dis; gives E major. - - Support for special keys with different accidentals on - different octaves, \specialkey \accidentals Fis Bes gis aiss'; - -********** -pl 76 - - website examples: - * Thread -> Voice - * 18 -> 19 - * type /consists Engraver vs Line_engraver stuff - - bf: mutopia-index - - to relative: twinke-pop - - bf: clef-grav: null pointer assignment - - ran convert-mudela - -pl 75.jcn3 - - minieme fixes (HWN) - - bf's: node() names have changed: Mudela Book/ Convert Mudela - - bf: lilyponddefs.tex: removed \fi, added braces - -pl 75.hwn2 - - bf lilyponddefs.tex: added \fi to \ifs - - convert-mudela in python - - mudela-book in python. - - bf memleak Score_elem::do_brew_molecule () - - bf array bound read String_convert::split_arr - - bf free mem read Item::Item (Item const &) - - bf memleak Midi_walker::do_{stop,start}_note () - - bf memleak Spanner::do_brew_molecule () - - bf plet-engraver memleak - - checked input/bugs dir. - -pl 75.hwn1 - - junked octave (mudela 0.1.19) - - more .bib stuff - - doco fixes. - -pl 75.jcn2 - - binary releases: - * make deb - * dpkg 1.4.0.23.2 - * debhelper 0.96 - * /usr/bin/db_*: remove -p from install options (urg) - * make rpm - * make zip - - path to nice lilypond.info (must have a go at auto-nodes): - * mv'd Documentation/man/lilypond-info.yo -> Documentation/topinfo.yo - * included mutopia as example - - bf: gifs: $(wildcard) - - leave tarball in out/ too, after 'make release' - - mf-to-table: --package - - typo configure.in - - nt make fixes (JBR) - -pl 75.hwn1 - - clef 8 fix (AG) - - junked octave (mudela 0.1.19) - - more .bib stuff - - doco fixes. - -pl 75.jcn1 - - dropped mf/Rules.make - - dropped target doosdist - - dropped lilypython/pythonblurb - - --package rest of python exes - - packagepython/package-diff fixes - - -********** -pl 75 - -pl 74.jcn5 - - lost of (step)make fixes - - 'make release' - - --package - -pl 74.mb1 - - Fix ":|:" that spans several staffs - - bf: bar.cc, table of breaks - - bf: engraver.ly, Complete the addition of ChoireStaff - - bf: lilyponddefs.tex, placement of ":|". - - Cleanup clef-item and clef-grav, prepare for dictionary - of clef names. - -pl 74.jcn4 - - cygnus fixes: doco, compile, install - -pl 74.jcn3 - - packagepythonified genheader - - stepmake 21 - -pl 74.jcn2 - - renamed: ../redhat to ../RedHat - - renamed (or huh, was this a typo?): - ../sourcetree -> lilypond-x.y.z to ../lilypond -> lilypond-x.y.z - - what about ~/rpms; see stepmake/Variables.make? - - README.txt - - debashify: zet-lily (HWN) - - www, yodl, stepmake fixes - - ls-latex fixes - - mudela.yo fixes - -pl 74.jcn1 - - mudela.yo fixes - - bf: add-html-footer: duplicate - -********* -pl 74 - - bf: ps-to-gifs fix - -pl 73.jcn2 - - irix configure/link fixes (HWN) - - untested fix for "^\f" (HWN) - - add-html-footer: bgcolor=white - - m.yo: successful 2tex and 2html - - ps-to-gifs additions and fixes - - bf: --output - - (step)make targets: - * diff - * help - * rpm - * zip - - yodl-1.30.pre4: handle mudela(options)(mudela) - - small m.yo example for mudela.yo - - crude tex2yodl in stepmake - - mudela from stdin: default to filter behaviour - - allow lelie to act as a pseudo-filter --output=- - - fixed faq.yo - - atvariables - - bf's: module-deps - - bf's table-to-html and invocation - - small doco fixes - -pl 73.hwn1 - - more doco - - got rid of weird <> semantics - * Ties_engraver, Note_heads_engraver - * depracated \multi - * depracated Thread context - - - wtk1-fugue{1,2} now in relative mode. - - don't create Rest_collision, Collision if no more than one - collider (interpreting should be faster, less mem usage) - - depracate Line_group_engraver, must use Line_group_engraver_group - - -pl 73.jcn1 - - tiny topweb.yo fixes (added 'Documentation/out-www/' to some urls) - -********* -pl 73 - Yodl developent: - ftp://pcnov095.win.tue.nl/pub/yodl/ - http://www.digicash.com/~jan/yodl/ - - removed BLURBS from makefile - - stepmake pl 16 - - To Yodl: - * *.pod -> *.yo (should fixup pod 'manpage' legacy) - * dropped pod2* config stuff - -pl 72.hwn1 - - count "constraint off" as degeneracy - - zet-lily stuff. - - bf: add Meter_engraver - - bfs: tutorial - -pl 72.jcn3 - - Documentation/man texinfo-> YODL! - -pl 72.jcn2 - - more texinfo: - * texi2html workarounds: junked man/*.pod - * Documentation/man: pod -> texinfo - - Coriolan: viola part - -pl 72.jcn1 - - doco/mutopia/website fixes - -********* -pl 72 - -pl 71.jcn4 - - try at texinfo: - * lilypond.texinfo - * stepmake pl 13: texi2man - * lilypond.1 now generated from texinfo - * lilypond.info - -pl 71.hwn2 - - changed QLP asserts to warnings; now you can see the -shabbyness of the QLP code - - ChoireStaff context - - more tutorial doco - - mudela-book: name output files to per section and chapter. - -pl 71.jcn3 - - bf: convert-mudela: added StaffGroup - - bf: various .ly: (WhyIsThis; we'll drop a_"bla" and use '_', no?) - - stepmake pl 12 - - bf: abbrev + beam (urg: internote y dim bug) - - debian conffiles (AF) - -pl 71.hwn1 - - vocab fixes - - more tutorial stuff - - quart -> fourth - - depracated contexts with _ in name (mudela 0.1.17) - - bf: don't crash if default context can't be found - - distinction between global and local \header block. - -pl 71.jcn2 - - msgfmt check - - rpm: crude fix for input dir (urg: should get doc on rpm spec; - why is that so hard to get hold of in plain text?) - - found (bit undocumented) sticky abbrev mode in stem-grav: - c8:16 c: c: - * bf: enable disabling - * disabled sticky abbrev req - - urg: transposing for midi (should fix audio-items) - - sticky abbrev req: a8:16 a a a8: - - bit more coriolan - -pl 71.jcn1 - - added PATCHES to web page - - rpm-dist, doos-dist, show-latest to step - -******** -pl 71 - - bf: po install - - fixed somewhere: space between bar line and first note [HWN] - - bf: DOTTEXT - - bf: (don't) install libintl - - configure fix for irix tr - - bf release.py - - stepmake-0.1.9: fixes make install, rmp-dist - - bf: mf-to-table - - make-patch: lily-diff - -pl 70.jcn6 - - make htmldoc defaults to out-www - - moved some python stuff to stepmake-0.1.8 - - aux config scripts from stepmake - - stepmake-0.1.7 as ./stepmake: drop versioning on sub-package dirnames - - po fixes - - computer-forms.el - -pl 70.jcn5 - - bf: Documentation/make html - - bf: coriolan ... almost there - - bf's: lilyponddefs: (fixes make website) - * moved errordefs (mmm, perhaps \input's should have been moved...) - * moved def of interscoreline - * moved def of setdynamic - - stepmake 0.1.6 - - include fixes - -pl 70.jcn4 - - configure stepmake too - - make dist recurses into stepmake - - stepmake-0.1.5 - -pl 70.jcn3 - - make; make dist work (without packaging) stepmake-* - - mv'd outputter* tex-outputter* - its not so handy to have files with the same prefix as our out dir :-) - - verbatim included stepmake-0.1.4 - - DOTTEXT->.txt - - verbatim included stepmake-0.1.3 - -pl 70.jcn2 - - changed 'current' to 'lilypond' in scripts that only i ever use... - - tenuto shorter, thicker and follow into staff - - computer{.data,-forms.el} - - mark - - by default don't make libintl - - make install for libintl - -pl 70.jcn1 - - generic make fixes - -******** -pl 70 - -pl 69.jcn4 - - included libintl from gettext-0.10 - - fix: staff-bracket on one staff too - - bf: lilymake/Rules - - generic lily-make-0.1.0 package; shared as example with lilyx-0.1.0 - - junked automake stuff from aclocal.m4 - - bf: BASH scripts - -pl 69.hwn1 - - standardised virtual accessor naming for Requests - - doco updates. - - bf: tied accidentals. - -pl 69.jcn2 - - now DATADIR = datadir = /usr/local/share/lilypond ... - - bf's: DATADIR/datadir: by default: /usr/local/share; '/lilypond' - must be added whenever necessary - - bf: begin/end html for BLURBS; junked html-accents... - - html-accents - -******** -pl 69 (june 2) - - bf: table-to-html: convert_html - - bf: added fingerfont in fetdefs.tex - - crude fix: fetdef repeatcolon - - gallina.ly to relative octave mode (MB) - -pl 68.jcn3 - - bf: libintl.h include - - readded: DATAFILES =.*data (too late, computer vocab missing...) - - span-score-bar: - * don't set piano braces that span less than two staffs - * don't set staff brackets that span less than one staff - - bf: abbrev (internote dim) - - more coriolan, hara-kiri - - add arcs to bracket height to avoid colliding of brackets - - HAVE_GETTEXT - - computer.data: modest start of computer-related vocabulary - - configure (localdir/datadir) fixes - -pl 68.nenn1 - - fix for postbreaks past line_group - - bf: harakiri: set empty - -pl 68.hwn1 - - use AFM iso autogenerated table. - - more bits of tutorial - -********* -pl 68.jcn2 (may 29) - - bf: configure.in localedir/datadir (urg) - - libc-extension.cc: vsnprintf + check - - bf: blurbs - - @BASH@ for scripts that are actually (still...) bash iso sh - - check for bash - -pl 68.jcn1 - - gettext/intl checks; (AO) - - bf: meter-switch - - COPERTINA - -pl 68 - - AFM file stuff: afm.cc, afm-reader.cc, mf-to-table.py - - removed c0 position from get_staff_info () - -pl 67.jcn2 - - grace example - - bf: sticky plets - - bf: s0 - - bf: twinkle.ly - - junked implicit to-string conversions - * now used Scalar for all explicit implicit conversions - * moved implicit-conversion String constructors to to_str (...) - - _f with Strings - - bf: BLUB: re-added empty line - - bf's: reincluded: tar-docxx.sh, topweb.pod.in (me too!) - - po: unification/breaking-up of (some) messages - - crude get-lily/build-lily scripts - - make targets "po-update" "show-po-update LANGUAGE=xxx" - - handier internationalisation funcs _(), _f () iso macro - - String_convert::form_str (fmt, ...) - - -******* -pl 67 (may 27) - - multiple font sizes. See input/test/sizes.ly - - w32 blurb by Dominique Cretel - - bfs faqs - - cleaned Identifier further; canonical accessors - -pl 66.jcn7 - - bf: hara-kiri clefs: (the "u" is "\unknown"; how to fix this?) - - bf's: make website - - better configure language message - - bf: lilpond.spec - - bf: configure/localedir - - internationalisation: po/* - - distribute mutopia/ in binary rpm too - - FLAPTEKST - - "generate" all debian conffiles in out/ - - BLOEP; and BLURB substituted by configure throughout doco - -pl 66.jcn4 - - bf's standchen - - website fixes for .fly - - target doc++; tar-docxx fixes - - topweb fixes - - configure check for pod2html 5004/5003 - - switch init file on extension (some new ones): - * init.ly: normal structured Mudela - * init.fly: simple Mudela (for on-the-* without tape ly's) - * init.sly for simple init (no properties,scripts,midi) - - - bf: stem with flags (forgot internote dimension) - - bf's mutopia (urg, properties) - - String_storage: parse string identifiers (i didn't do it, nobody saw me do it, you can't prove anything) - - scsii-prelude: urtext and suggested slurs separated - - converted twinkle, kortjakje, standchen, preludes to relative - - conflily -> zet-lily - - -Q --find-quarts option - - bf: add-html-header: mailaddress () iso mailaddress - - bf: show-latest looks at MY_PATCHLEVEL too - - fixes scsii - - - -*********** -pl 66 (may 18) - - junked literature.pod (we now have the .bib file) - - bits of mudela.doc - - other-packages.pod -> other-packages.bib - -pl 65.jcn3 - - print_dimen: don't print "NaNpt" - - fixed Coriolan, added "instrument" and "instr" - - MIDI favours property "midi_instrument" over "instrument" - - Bar::do_height iso brew_molecule hack: not quite yet... - - stem/beam: more stuff runtime - * beam-dir-algorithms - * beam-stemlengths: take unnatural dir into account - * natural stemlength - * forced stemlength shortening - - bf: Bar: don't make molecule if invisible; fixes hara-kiri - - robustification of MIDI: never return "", always return sane - string and print warning - - bf: typo Key_change_req::sharps(); fixes MIDI - - scsii: new relative octave fixes, gigue - -pl 65.jcn2 - - included some auto-generated mf files for MikTeX (doos). - - hara-kir: nicer set-transparent - - relative.pod: doco'd blonder relativeness - - -pl 65.jcn1 - - staff-margin-engraver - - blind scsii fixes for new relative mode - - bf's: hara-kiri-* - - jumps in topweb.pod - -********* - -pl 65 (may 15) - - fixes for template instantiation (AO) - - junked standchen-easy, - - mudela 0.1.15: deprecate \duration, junked \octave relative - - small doco fixes - - moved data from Melodic_req into Musical_pitch (analogous to - Duration and Rhythmic_req) - - implemented \relative c' { .. } and associated Relative_octave_music - - junked \octave relative; - -pl 64.jcn2 - - simple compile fixes - - bf: beam:stemlens:knee - - hara-kiri-* - - bf: ctags - - preludes-3.lym4 - -********* -pl 64 (may 13) - -pl 63.jcn3 - - beam stemlength stuff runtime - - dropped lq for beam-stemlengths, fixes [d d d] [d g d] - - ugly sed fix for commas in .ly.m4 - - beam damp corrent fix - - scsii: small fixes - - preludes.ly; dropped silly preludes.tex - -pl 63.jcn2 - - vocabulary on website - - data-to-html.py - - bf: beam damped-slope correct - - bf: make website - - some preludes-* fixes - -pl 63.jcn1 - - "relative" sizes for titledefs - - bib2html/man2html urls in INSTALL.pod - - auto-generated feta stuff in doosdist - - bf's: make dist, docdeps - - bf's scsii - -************ -pl 63 (may 11) - - - non_fatal_error () (should use!) - - Mozart Horn concerto 3, horn part - - bf: plet-spanner - -pl 62.jcn11 - - bf: beam::set-stemlen:iterations - - knee-bug.ly - - use knee in menuetto-ii - - bit on slope damping - - some bf's and doco - - bf's scsii - - scsii: bf' new: sarabande - - bf's allemande, courante - - bf: knee: stem through beams - - bf: too high beams - -pl 62.hwn1 - - bf jcn8: deep copy Scope (ughugh. I want GC!) - - cleaned Identifier - - mudela 0.1.14 'a -> a, - - class Scope - - .bib updates - - key robustifiction for extreme octaves - - ly2dvi 0.11 - - energy "normalisation" removed. - -pl 62.jcn8 - - beam: knee input/test/knee.ly - - vimrc init for lily - - errors display column number too - - scsii: bf's, new: allemande, courante - - looked at lyric lengthen "mir________." (eerste weigering) - - beam: knee [c \stemdown c' \stemup 'c] - - expressions parsed at identifier_init - - bf: slur/stem/whole x-adjust: - * use note-col width iso mean note-witdth - * note-column:width () - - now string variables in paper too -> mudelapapersize - - paper_def: real dict -> identifier dict - - My_lily_lexer: identifier dict stack - - init paper and a4 stuff - - \include \string - - all rvalues from parser var pool -> access rvalue as \rvalue - - string variables - - ly2dvi 0.10.jcn1 - * mudelapiece, mudelaopus (ugh, fix) - * textheight - - more titledefs - - bf: table 20 typeface widths - - bf: toplevel/*.txt - - bf: ugly Documentation/mutopia fix (should rename dir to Mutopia/ ?) - - bf: make examples - - www.digicash.com/~jan/lilypond - - make website fixes - - ambiguity fixes in .ly's - - bf: relative-octave warning - - relative-octave: guess if ambiguous - - ambiguity warning for relative mode - - scsii: prelude - - bf: slur gap - - bf's: scsii: menuetto - - .txt -> $(DOTTEXT) - - make website fixes - - .txt fixes - - bf: typo make-patch - - bf: *dist.sh cleanup - - bf: release.py - - bf: make/Targets doc (removed .txt extension) - - rpm-dist.sh - - make doos dist fixes - - doos-dist.sh windoze dist script - -- removed useless spacing hack at spring-spacer.cc:692 - - bf: los-toros: do multi-bar rests (setting SkipBars = 1) - - scsii-menuetto.ly -> menuetto-urtext.ly, -cello.ly and -alto.ly - - bf: \octave c'; for relative-octaves - - bf: Documentation make - -********* -pl 62 - - no-touch hak. - - bfs: multi measure rests - - fixed the website. - - add extra space after breakable columns. - - -pl 61.jcn8 - - mudela relative octave feature: - * Documentation/relative-octaves.pod - * \octave relative; - * lilypond -f for automatically finding new relative quote positions - (sorry, fully automated convert is too complex) - * mutopia/ltor.ly: octave quotes reduced from 511 to 59 - - better conflily - - bf: abbreviation-beam-engraver: set beam::multiple_i_ - - bf: open_abbrev_parens - - dotted/dashed slurs/ties - - fixed-up scsii-menuetto; use dotted-slurs - - slur_thickness runtime - - bf: typo lilyponddefs: elevendefs - - moved hard-coded slur parameters to runtime - - make-patch -r: diff against latest release - - allow semicolons after paper_identifier and \include - - params.ly: parameterised some paper vars - - bf: beam quantise for slope = 0 - - interbeam (mult>3) open-up to paper-def to paper! - - "implemented" Paper-def::staffheight - - simplification + bf bezier clipping - - vandale fix - - moved doco from paper*ly to fonts.doc - - papers with expressions - - paper20.ly: rewrote precalculated values as expressions - - simple expressions in mudela (paper-body only) - - beam_thickness centralised and run-time... - - \nobreak - - bf: beamquantise: never sit if mult > 1 - - bf: broken slur y-offset (not!) - - pagelength hack in tex/headers - - alignment of bracket (in span-score-bar.cc) - - boolean *break_b to continue break_penalty_i; maar nu... - - removed paper20 includes, \paper_twenty from examples - - dropped latex files - - renamed standje, standchen. - - parser accepts range of mudela-versions - - Mudela_version - - String_convert::split - - bf's: los-toros-oboe - - braindead Break_req with penalty; junked Disallow_break_req and - Break_force_req - -pl 61.ag1 - - implemented octave-shifted clefs. - -******** - -pl 61 - - bf: mudela-book error msgs - - don't dist feta-tables. - - bf: mf-to-table, deps[0] catch - - reworked initialisation parsing logic; Got a no-redtape mode - for free - - 20 pt staffsize now default - - dependencies for LilyPond (-d, --dependencies). --debug moved to -D - - (c) 1998 - - ly2dvi 0.10 (JAF) - - changed \begin[options]{mudela} to \begin{mudela}[options] - - more WWW hacks. - -pl 60.jcn2 - - minor adjust for asymmetricity of beam symbol - - added TEST beam quantisation; see input/test/beam-pos.ly - - removed some empty .cc .hh - - Grandstaff -> Grand_staff (After [Gerou] and Harvard Dictionary of - Music) - - bf's: slur and tie post-processing - - cleaned-up bow: get encompass - - cleaned-up beam-yspan and beam-leftpos quantisation - - misc.cc: some funcs to get lower and upper bounds from array of values - - interval.*: Slice (Interval of int) - - added some doco to beam.cc - - removed some x,y by-ref passing in Lookup - - cleaned-up beam-yspan quantisation - - cleaned-up slur get encompass - - configure: --disable-optimise for compile without -O - -pl 59.jcn4 - - bf: beam quantise - - bf: sticky plet bug - - bf: chords in beam - - bf: typo beamquantisaton - - bf: don't blow_fit infeasible bows (x_i < x_0 || x_i > x_n) - - bf's: beam/stemlengths, beam-bug [c8 c16 c16] - - bf: placement broken tie - - yet another try to raise bar-number - - bf's: bow tangent clipping, allow higher bows - -************ -pl 60 - - mats patches: use Latex font stuff. - - fixes to the .59 patch release (jcn) - - make website|examples target - -pl 59.jcn3 - - bf: preludes-5 - - no inline compiler warnings by default - - bf: gcc 2.8 compile bow.cc - - moved functions with loops from varray.hh to varray.cc - - bf: minimum length for tie - - slur clipping standard - - bf: second broken slur minimum length - -pl 59.jcn2 - - added some to .dstream - - bf: second part of broken slur - - slur encompassing noteheads adjust - - bwv'd preludes - - bf: make-patch -d - - doc'd rerunning of autoconf - - rest of real standje (rename and move simplified standchen to - input/test?) - - bf: clipping - - bit better bar number placement - -pl 59.jcn1 - - more INLINE - - bf: multi-measure rest - -pl 58.jcn7 - - los-toros: do multi-bar rest - - - -*************** -pl 59 - - ly2dvi 0.9.hwn1, -K switch, - - doc: moved manpages in separate directory. - - do WWW stuff via make - - mutopia-index.py - - ly2dvi 0.9 (JAF) - - multi platform build fixes - - junked embedded switches, embedded MF, obsolete TeX stuff - - junked virtual matrix storage: inlined most matrix computation, - speed increase of 30% - - junked taupindefs, eglerdefs - - rm'd taupin/egler from INSTALL - - doc: engraving.bib, colorado.bib - - input hierarchy. - - -pl 58.jcn6 - - multi-measure rests: moved acknowledge from timing-translator - to -grav - - slur clipping experimental... - - bo to b - - always announce multi-measure - -pl 58.jcn5 - - bf: reset plet after reading mmrest - - try at not generating moments... - - Multi_measure_rest 'symbol' - -pl 58.jcn4 - - try at multi-measure rests: part.ly - - bf's: slur get_encompass - - bf: slur clipping - -pl 58.jcn3 - - experimental (--test) clipping of too high or tilted slurs - - nicer slur control output and ps code - - bit thicker and round-capped tuplet bracket - - bf: slur.cc: RESIZE_ICE - -pl 58.jcn1 - - varray.hh bezier.cc, slur.cc patches to avoid gcc 2.8.1 ice - - some inlining fixes - - configure: use -O to enable inlining - - included and fixed new make-patch.py - - bf: Mutopia.make - - bf: offset: operator - () - - ugly hack bezier: do blow_fit twice - - bf's: bezier: rotate,translate - -*************** -pl 58 - - more *.make hacking - - bracket fix (AG) - - clef fix (PC) - -pl 57.jcn1 - - reincluded test/bow.cc - - promoted Bezier bows to standard - * bf's: broken slurs - * some bf's: verneukeratificering van JCN code - * some bezier slur doco - * calculate Ties with Bezier bow - * junked tex-slur.cc - * junked ps-slur code - * junked height-only slur-correction - * lots of bezier/slur fixes - * bezier:blow_fit - -************** -pl 57 - - verneukeratificering van JCN code. - - lots of updates on our own makefile system. - - junked automake & documented it - - put rods into Spring_spacer too. Much cleaner - - bf: weird spacings (enge floats) - - bf: too many constraints added. - - smarter constraint check - - bf: table16 fontsize. - - - 56.jcn1's empiric computer science. - - debian patches (AF) - - solaris/irix patches (AO) - - - pl 56.jcn5 - - bezier and slur: cleaning and fixes - - bf: removed silly experimental beam feature - -pl 56.jcn4 - - reintruduced slope in bug [c8 c16 c16] in favour of stemlen bug... - - staff-side: accent half line higher - - reincluded silly los-toros latex file - - bf's: bezier.cc,bow.cc, mat.hh: rotate - - bf: bezier slur: handle broken slurs - - bf: beam - - dehairifications of bezier.cc - -pl 56.jcn3 - - bf's: offset multiply, matrix rotate - - dropped los-toros latex file - -pl 56.jcn2 - - even nicer excentric slurs; - - input/slur-bug.ly - - los-toros with barnumbers ;-) - - nice version of height-ajust bezier slurs (see sleur.ly --test) - - bf's beam: - * slope in[c8 c16 c16]; - * allow no INTER position for normal quantising - -pl 56.jcn1 - - bezier curves with raaklijnen - -pl 56.ag1 - - `Makefile.am.wild's now should work correctly with VPATH (AG) - -************ - -pl 56 - - more dutch vocabulary - - Barnumber FAQ added - - bf: abbrev over whole note. - - feta: reverse turn. - - bf: rod distance - - bf: local key clashing - -*********** -pl 55 - - bezier check and ajust for slur height - - better slur height ajust - - DO chmod 755 *test/*sh - - bf: discretionary of || - - bf: scripts within staff - - NOT Grandstaff -> Grand_staff (yet?) - - bf: cresc. decresc. height lookup.cc,init/table* - - bf: staff-symbol (script placements) - - staff-group-bracket - - bf's preludes, los-toros - - nicer trills - - adjustment slur extend - -********** -pl 54 - - bf dynamic_grav - - bf accidentals with key change - - bfs with command-items in non-breakable columns. - - typos (thanks LM) - -pl 53.jcn1 - - two new BUGs - - preludes-* with trills - - nicer trills - - fixed ugly slur extend bug - - first try at symphonic work: (start of) Coriolan - - fixes: los-toros - - test/ with some stupid tests - - bf, again midi-output - - --no-timestamps options for lily/mi2mu (to enable make check targets) - - removed doubles in lilypython - - smarter prev_version for make-patch - -*********** - -pl 53 - - bf: c4 \< c4 \< - - bfs of spacing stuff - - -pl 52.jcn6 - - make check target - - moved flower/test to flowertest - - dist fixes - - flower no longer independent package - - bf: GNUmakefile - - bf's: configure: debugging (default) /profiling - - bf: Rational iface (fixes MIDI output) - - bf: non --srcdir configure + build with GNU make (ugh) - - ugh: autowildflower - - bf's: invoking wild-perl - - bf: ugh: staff-side.cc: placement height - - bf's: gnu 2.7.2 link (huh?, everyone using 2.8?) - - make-patch: default diff against (copy of) srcdir - - bin/conflily configures in ../build - - GNUmakefiles that do: - * auto-update of Makefile.am.wild - * auto-switch to builddir - - bf's: configure --srcdir - - fixes for los-toros/twinkle/test-lyrics - - latex file for los-toros (ugh) - - staff-side: symbols closer... - - half fix of midi output? duh. - - oboe1 los-toros - -************ -pl 52 - - split up elem-group stuff. - - per line widths - - miscellaneous fixes by WL. - - -pl 51.jcn1 - - bf's: dutch->nederlands - - Cygnus b19 compile/link fixes - -************ -march 27 -pl 51 - - changed dutch -> nederlands, german -> deutsch etc. - - norwegian (AG) - -pl 50.jcn4 - - fixes for cygnus' gnu-windows32 beta19 - be sure to compile with -fno-rtti - - proof of concept for automated updating of Makefile.am - see mi2mu/GNUmakefile (still somewhat clumsy) - - mv'd both config.hh.in to acconfig.h - - copied printing/debugging/optimising options to flower conf - - (some modified) fixes from AO - - beginnetje los-toros-oboe - - bf: DIR_DATADIR - - bf: trills - -************ -pl 50 - - deprecate autowild - - --srcdir fixes - - ly2dvi 0.8 - -pl 49.jcn2 - - static (default) and/or shared libs flower and lily - - patch from AO 'libtool 1.1.1' - - mf: trill-symbols: feta-slag.mf - - shared libs (ugh: hardcoded switch in configure set to static) - - some fixes: denneboom.ly, standje.ly/standchen.ly - -******** -march 19 - -pl 49 - - parser assert changed to warning - - fix stdin reading - - small jcn fix - - changed unbound Spanner from assert to warning - - forced breakpoints - - add a nowildcard: stmt to wild-perl - -pl 48.jcn5 - - ugh: double parser/lexer: - be sure to rm lily/parser.cc lily/lexer.cc or bin/clien - before re-running autowild! - - V.RSION - - bin/clien bin/meek - - bf's: flower/VERSION, flower/config.hh, lily/lexer/VURSION - lib/config.hh bin/convent-mudela - - lost of automake fixes - - automake - -****** -march 12 -pl 48 - - Pitch_squash_engraver makes Rhythmic_staff possible. - - some fixes to buildscripts for sgi irix - - misc. patches (WL) - - move away from libg++: rolled own Rational class.. - - don't make gif files Documentation/ by default - - ly2dvi manpage (JAF) - - ly2dvi 0.7 (JAF) - - more clefs. (MB) - -pl 47.jcn2 - - bf: interbeams and beam-stemlengths for size != 16 - - bf's: preludes - - more introduction - -pl 47.jcn1 - - voice{one,two,three} defines - - preludes-*: fixes, junked multi, broke-down score-block - - mudela-book: added center option - -****** -march 6 -pl 47 - - Abbreviation now a separate item. - - bf'd some gcc 2.8 warnings. - - bf'd spurious space in autodep. - - more clefs (MB) - -pl 46.jcn1 - - start mudela introduction - - -pl 46.jcn2 - - bf's: preludes-* - -******* -feb 27 - -pl 46 - - span-bar at upstep. - - bf: \score { \score_identifier } - - tenor clef (MB) - -pl 45.jcn2 - - preludes-4,5,6 - - bf's denneboom (oeps, see loop) - -pl 44.jcn7 - - text-item.cc: try to get fingers just above note... - - set minimum space between columns - - bff: mf/Makefile out/*log required: new .ly .tex's with make-dist :-( - - bf's midi ascii-debug output - - bf: property instrument - -******* -feb 12 -pl 45 - - bf: translator switching - - SunOS and IRIX patches (AO) - - preludes bugfixes; preludes.tex ugh (JCN) - - shared lib numbering (AF) - - various fixes for debian (AF) - - ly2dvi .6.jaf (JAF) -pl 44.jcn6 - - bf: crescendo.cc: bigger and use bar_size - - slur: guess extra height for height limit for extending notes/stems - - ps: adjustable slur height limit, bf crescendo - - -****** -feb 6 -pl 44 - - ly2dvi 0.6.hwn1 - - ly2dvi 0.6 (JAF) - - use ly2dvi for website - -pl 44.jcn2 - - fingers default to above note - - preludes-2.ly - - parser: fingerings - - preludes-1.ly - - bf: denneboom.ly - - preludes-3.ly.m4, standje.ly, preludes-4.ly - - make rule for macro ly-files - - pletvisibility (init/property.ly): - * default no bracket with beams - * invisible plet bracket feature - - finger dir in text-def - -******* -feb 2 - -pl 43 - - bf: broken Plet_spanners - - more GNITting - - avoid some more global ctors, for NeXTstep - - some NeXTStep patches from tiggr - - don't do overstrike/bold chars in textfiles - - -pl 42.jcn2 - - bit hesitating start of mutopia - - bf: don't try to typeset unterminated plet - - separately sticky plet durations: "c4 c4*2/3 c8 c4*1/1", ok Mats? - - denneboom.ly (half-baked version) - - indent and shape, see ^ - -pl 42.jcn1 - - bf: memmem revisited - - bf: ps: draw_plet vertical endings - - renamed stem_start to stem_begin - - bf: plet bracket placing on differently orientated stems - - more standje.ly and fixes -****** -jan 28 - -pl 42 - - ly2dvi 0.5 (JAF) - - italian.ly (thanks, Paolo) - - bf: first \mudelapaper output (BS) - - bf: cathedral + bazaar URL (thanks, Barrie) - - bf: libc-extension.hh (AO) - -pl 41.jcn4 - - plet brackets (always) in ps (only) - - Plet_spanner derives from bow - - bf: mf/Makefile: let %.tex %.ly depend on %.mf, - iso non-distributed %.log - - mi2mu mudela 0.1.8 - - bit better plet number placement - - handier plet syntax: [2/3 c8 c c ]1/1 and \[2/3 c2 c c \] - - Plet_swallow_engraver for lyrics - - bit better plet number placement (NOT) - - new plet syntax: combined beam and plet open - - more standje.ly - - new plet syntax: start: \plet2/3 stop: \telp1/1 - - Plet_req, Plet_engraver; removed plet stuff from beam - -****** -jan 20 -pl 41 - - warn for score with multiple Music blocks - - bf: \plet (MB) - - \textsharp in 16pt - - malloc frobnifying - - more fontsizes: 26pt, 11pt, 13pt - - \textstyle "bold" - - .rpm: remove old fonts - -pl 40.jcn2 - - bf: typo scores.cc - - bfs: non-default base constructor calls - - bfs: virtual destructors - - standje.ly: the real standchen (first bit) - - gcc 2.8 compile - - nicer scsii-menuetto - -pl 40.jcn1 - - bf: breaking of :| bar - - bf: lyric substitution of _ -> ' ' flower/libc-ext:memmem - - no slope=0 beams between stafflines - - bf: tex without lily-ps-defs - - bf: embedded mf shift: added '%' to \embeddedps - - doos compile - -****** -jan 12 -pl 40 - - some doco fixes - - debian diffs (AF) - -pl 39.jcn2 - - bf: bit smarter atan() for feta-sleur (thanks wendy) - - bf: y quantise of multiple down beams (typo) - - minor doc fixes - - bf: distribute mfdeps and moved from mf/out/mfdeps to mf/mf.dep - - some changes to ANNOUNCE - - fixes for simple slur/tie placement - - embedded MF fonts identified by parameters -> reusable runtime fonts - - clean-embeds.sh - - runtime MF beams: feta-beum.mf - - bf: enable switching PS off - - updated runtime MF feta-sleur.mf with new PS slur algorithm - -****** -jan 5 1998 -pl 39 - - 0.2 ANNOUNCE sketch - - unix style paths for LILYINCLUDE env - - show all output pages on website - - ps-to-gifs.sh - - bf: wtk1-fugue2 - - python make-website - - higher brace resolution - - phased out musixtex stuff - - bf: rhythm.ly - - PS slurs - - PS beams - - Bow units - - turn on PS by default - - turn off barnumbers by default. - - bf: halfbeam size. - - bf: -M bug - - stafflinethick in PS (crescendi) - - continued (de)crescendi (in PS) - - bf: spurious beam reqs - - handle unfeasible spacing cleanly. - - ML-address change - - output naming: default to basename[-serialnumber].{midi,tex} - - bf: clef width - -pl 39.jcn2 - - make-examples.sh - - leftright repeat sign + repeatbar dims - - smaller minimum sized rod at end of bar - - bf: spacing.ly - - less space at begin of bar - - experimental whitespace fixes at begin and end of bar - - added to beams.ly - - open-up beam spacing for mult > 3 - - fixed hang/sit to overlap iso aligne with staffline - - fixed inter beam spacing, paper*.ly - - scsii-menuetto.ly fixes - - init/property.ly - - property settings for beam quantiseing and damping - - provisionary multiple-beam fix - -****** -pl 38 - - bf: \> \! \ff (crescendo overlap) - - misc feta-fixes, flageolet sign. - - midi tempo fixes. -pl 37.jcn3 - - max beam slope "compile time parameterised" and set to 0.6 - (oh, how we need runtime generated beams!) - - beam's left y-pos quantisation - - beam slopes' y-span quantisation - - stem.ly - -pl 37.jcn2 - - feta: fixed sizes small numerals + flageolet - - -******* -dec 12 -pl 37 - - --postscript - - don't crash non-fitting grouping (thx, John) - - attach unended spanners to a column (thanks John) - - bf: unended tie - - bf: tie direction - - bf: unended slur - -pl 36.jcn2 - - feta: small numerals - -******** -dec 9 - -pl 36 - - bf: notehead collisions - - bf: dot y-position - - use Item::break_priority_i_ for horizontal alignment of breakables. - (it still sucks) - - junk some derivation checks, junk Normal_*_bar - - FlowerLib fixes. - - twinkle fixes. - - feta: flag/clefspacing - - -******* -dec 5 -pl 35 - - naming: lily-init iso symbol.ly - - mf braces - - center textscripts. - -pl 34.jcn1 - - mf: nicening of dyn, klef, rest - - fingerfont - - bf: 12/8 - - -******** -dec 2 -pl 34 - - bf: mf: numbers and alto clef - - bf: scsi-menuet - - PS crescendos - - ly2dvi diffs (JAF) - - debian diffs (AF) - - w32 doco fix (JCN) - - -******** -nov 24 - -pl 33 - - added abbrev.ly to font.ly; rm'd abbrev.ly - - don't process scores on parse errors. - - bf: kortjakje.ly - - bf: invisible stems in beams (abbrev.ly) - - lytodvi script (JAF) - - output Paper_def settings to TeX file. (eg: linewidth) - -******** -nov 19 -pl 32 - - change type checks (ughugh) to derivation checks (ugh) - - this fixes clef bug. - - bf: order of breakables: meter comes after bar. - - bf: do error iso coredump on unknown symbol-table - - bf: release.py, copy patch too. - - bf: add makefile dep for disting MF logs. - - bf: don't read font-en-tja*.ly, but feta*.ly - -pl 31.jcn2 - - first version of (non-ugh) c-klef - - bf: mi2mu: notes of zero duration as comments - - feta: ugh c clef - - -******** -nov 17 - -pl 31 - - bf: replaced Score_column assert by a warning (thanks Scott) - - bf: mi2mu version output (thanks Scott) - - faq updates - - always output lily header with Lily version - - bar mucking: make scorebars/braces different from repeat bars. - - feta: repeatcolon, clef bf's - - debian/ updates. (AF) - - moved debian stuff into toplevel dir - -******** -nov 11 - -pl 30 - - feta: G clef. - - scripts now do relative coords (fixes lyrics + barnumber bug) - - bf: Lyrics lexer mode - - bf: bass clef - -******** -nov 6 -pl 29 - - feta: bass clef, bf: dynamics, bf: 64th flag - - -******** -oct 30 -pl 28 - - revised Staff_symbol::brew_molecule_p () - - naming: \makelilytitle - - fixes for TeX titledefs (JAF) - - junked some obsolete pedal stuff. - -pl 27.om-je-te-helpen-met-je-ps-spul.jcn1 - - embedded slurs: - * bf: placements - * added \embeddedtex - * postscript is default - * fixed \embeddedps - * fixed mf: draw_slur - * postscript macro: draw_slur - -******** -oct 29 -pl 27 - - -t/--test switch for experimental stuff. - - bf: debian optimize is not with 'z' - - mf: naming feta fonts are now called feta16, feta-beams16, etc. - - feta: ledgerline - - lily adjustments for new and elegant ledger line - - bf: mf-source path. - -pl 26.jcn1 - - bf: numerals - - sleur.ly - - embedded slur testing - - bf + patch: make-patch release.py / VERSION - - -******** -oct 26 -pl 26 - - bf: \transpose - - feta: numerals 0 - 9, rewrote flags. - - - -******** -oct 22 - -pl 25 - - variable stemlength - - feta: 32nd, 64th flags - - font.ly - - dist & tarball made in out/ - - rewrote release.sh in python - - notehead/stem attachment better. - - more Stem cleanage - - related Beam cleanage - - started numeral font (JCN) - - bf: whole rest outside staff. - -********* -oct 20 -pl 24 - - internationalization preps (FP) - - rewrote make-patch in python - - BUGS: added another flex/libio crash explanation - - feta: flags - - -******** -pl 23 - - feta changes: 1/4 rest, flat, bf 8-128 rest - - bf: cadenza - - bf: scripts - - bf: rest-collision - - bf: meter placement - - junked cpgento.sh - -********* - -pl 22 - - bf: lyric 's- Zondags - - bf: colliding accidentals: renamed translate(Real,Axis) to translate_axis() - - renaming of scripts - - strings with escaped characters. - - bf "string_with_\"_embedded" - - bf: mf/Makefile - - feta changes (trill, organ pedals) - - updated mf-to-table for new feta conventions - - changed header format to something sensible. - - moved staff to centerline == 0; - -******** - -pl 21 - - shrinking uses more energy than stretching - - check IO error on writing (disk full?) - - -********* - -oct 8 -pl 20 - - don't swallow non lyric-stuff in lyrics - - x-position of Stem - - more feta changes - - move scripts to right - - genheader.py replaces genheader.perl - -pl 19.jcn2 - - bf's mi2mu: - * Midi_track_parser::note_end_all - * staff output uses key, meter, tempo read - * command line read minor key - * minor key notenames - -pl 19.jcn1 - - small changes to sharp, fermata - - small changes to lilypond.lsm+doc, lelievijver.lsm - - mi2mu updeet + bf - -pl 19 - - bf: keyword.cc rm'd struct defs - - dots: support for feta dots. - - lots of font (feta) tjanges - - mf-to-table rewrite in python - -********* -pl 18.jcn1 - - check for python, mf-deps fix - -pl 18 - - bf: Box[X_AXIS] = b - - bin/mf-deps.py script - - moved beams out of font-en-tja into vette-beams. - - Made corresponding .cc changes. - - -jcn patches - - egcs compile (no link yet) - - nicer 4rest - - beam font (je kunt wel tegen een grapje, eva?) - - mf-to-table: - * "breapth" (x-depth) feature - * handle generic stuff such as beams - - polished noteheads - - fixed 8-128 rests - - 4rest - - mf-to-table generates tex defs - - bf:mf-to-table and conflily outname check - - 8-128 rests - -****** -sep 24 - -pl 17 - - bf: ledgerline width - - bf: toccata-fuga-E - - took out some hardwiring of tex-beam - -pl 16.jcn1 - - mf-to-table.in: generate mozarella metric info tables - - autometric.mf: write metric info to mf logfile - - ital-r.mf, smaller ital-m.mf - - variable streepjes length (top/bottomlines); fixed (for 20pt?) - - streepjes twice as thick as staffrules - - even more pronounced bolletjes -- how 'bout this wendy? - - quarter and half note after drawings (a/b less distinct) - -***** -sep 19 -pl 16 - - revised mudela-man a bit - - ; optional after \musicidentifier - - bf: doco about {Mus*,Opus}TeX - - bf: configure: MFDIR - - bf: String::operator bool () removed - - bf: String::operator char const * () removed - - bf: Line_spacer::~Line_spacer () added: plugged memleak - - bf: Line_of_score::do_unlink () call Spanner::do_unlink - - bf: rests in beams - - bf: textnatural - - bf: 20 pt flags - - bf: longarest - -pl 15.jcn1 - - bf: typos whole and half notehead - - de-uglyfied bolletjes.mf - - ascii output of font metrics in mf logfile - -****** -sep 17 - - -pl 15 - - put top of NEWS file in the webpage - - breadth first search for engravers. - - bf: coriolan-alto.ly - - Stem / Notehead width now properly calced - - Atom and Symbol merged - -pl 14.jcn1 - - lily's own noteheads (balls/globes :) (font-en-tja*.mf) - - {table,paper}* and taupindefs adaptations (when are we moving?) - - fp, sf, sfz dynamics - - font.ly - - bf: dist mudela-mode - -******* -sep 15 - -pl 14 - - Simple but nifty mudela-mode.el for Emacs - - slightly better syntax for single-note-repeat, now default kept in -Stem_engraver - - bf: Abbrev_beams are not the only beams (see: jcn4, stem-info, thanks, Jan) - - a CPU timer for Interpreting and Breaking - - Separate Score_elem: - * invoke-once stuff in Super_elem (using function pointers; much cleaner now) - * geometrical stuff into Graphical_element - * Axis_group_* accept Graphical_elements iso. Score_elems - * A dimension cache, hopefully this makes lily a bit faster - * TeX output moved out of Score_elem, separate interface Outputter - - - < \multi 2; bla > -> \multi 2 < bla > (mudela 0.1.6) - - bf: don't do \multi if \type specified - - Translator switching: Change_translator, Change_iterator - - -pl 12.jcn4 - - fixed dynamic f, magstep bug - - gaps on abbrev-beams - - bf: stem-info - - bf: last abbrev - - bf: stem: do_width - - bf: removed rest-column.hh - -******* -sep 11 - -pl 13 - - big Rest/notehead rewrite: - * separated Rest, Note_head and Dots - * Dot_column: dots are now chord-wise aligned - * Rhythmic_head is base for Rest, Note_head - * Merged Note_column and Rest_column - * Rest_engraver - - grand Engraver/Translator/Performer rewrite. - * properties: \property voice.dir = -1 (mudela 0.1.3) - * Input_translator junked, now Translators are generated -by the parser (mudela 0.1.4) - * Translator changing: \translator Staff=oboesolo - * Translator preselect: \type Staff=bla < c4 >. (mudela 0.1.5) - * Engraver/Performer now derived of Translator. - * Engraver_group_engraver/ Performer_group_performer derived of - Translator_group - * renamed: Voice -> Thread, Voice_group -> Voice - - renamed Audio_score to Performance - - junked mididef statics - - Audio debug output - - bf: excess [] in scsi - - bf: swallow \skips - - bf: don't crash on infinite dims - - renamed wohltemperirt to wtk1-fugue2 - - bf: address in GPL - - bf: errors in stdin - - bf: stop if errors in init files - - bf: move stem too when doing collisions - - Molecule::add_XXXX -> Molecule::add_at_edge () - - doco updeet: why no midi FAQ, index, CodingStyle hungarian - - -pl 12.jcn3 - - try at better dynamic font, copied from cmbxti10: mf/* - - typesetting abbreviation beams; abbreviation-* - - some simple abbrev fixes + code cleanup (dank je, lieverd) - - typesetting simple abbreviations: c4:16 === [c16 c c c] - -pl 11mb - - Support also for \longa in duration-convert.cc, init/ and tex/ - files. (MB) - -******** -sep 3 - - -pl 12 - - bf: don't redefine tex primitives like \textfont and \mathfont - - nicer broken slurs (?) - - bf: error status upon parse error - - robustness in Lookup::*slur - - bf: mi2mu: warn if 0-length string in midi-file - - output id-footer - -******** -sep 1 - -pl 11 - - forms for Musical vocabulary - - ignore \r for windows - - Now paper{score,def} & midi{def,score} derived of class -Music_output[_def]. Score is almost empty. - - Engraver hacking: - * junk Text_engraver - * Timing_engraver - * barnumber now really counts the number of bars - * Separated Stem_engraver and Beam_engraver - * junk Stem_beam_engraver - * no need for Stem_reqs - - use Direction = {LEFT, RIGHT, UP, DOWN} iso. -1, 1 throughout source - - ties and slurs with Drul_array - - junked Spanner_elem_group - - bf: w32 fixes - - Spanner now spans items. - - more GNITting ( bla ) -> (bla), indentation - - Drul_array - - Paper_column now is derived of Horizontal_group_item. Items -are no longer hardwired into a Paper_column - - bf: stdin input - - PCol -> Paper_column - - Wtk-i, fugue1, prelude1 (SR) - -******* -aug 21 -pl 10 - - bf: init pending_indent_i_ - - output header to TeX file. Who wants to write TeX to make it work? - - - mi2mu: bf's, --key option - - removed Duration(int,int) - - bf: Duration_convert::dur2_str - -pl 9.jcn2 - - redo of mi2mu frontend (midi-parser) - - bf: String_convert::bin2_i; added bin2_u - - bf's: Binary_source_file - - bf: constr. Tempo/Timing_req -pl 0.1.8.jcn3 - - table20, standchen-{16,20}* -******* -aug 18 - -pl 9 - - declare rhythic_request - - preliminary support for real \mudelaheaders - - context-sensitive arithmetic spacing. Looks alot better - - silly GNU braces. - - JCN fixes for pl 8 - - bf: midi instrument - - Vocabs from GMP-I - -pl 8.mb: - - use log of duration-name - -******* -aug 15 -pl 8 - - - gif -> xpm - - bf: Whoops! Open eyes now, when finding shortest note in -spring-spacer. Fixes spacing problems. - - GNU coding: parentheses (here you are, Franc,ois :-) - - all macros now UPPERCASE - - Identifier blondification: don't use void* - - Identifier doesn't store its name. Much cleaner now. - - bf: Rest_collision_engraver now always announces - - bf: announce Staff_sym only once -pl 0.1.7.jcn1 - - complete redo mid/back-end of mi2mu - - bf: do not create/play empty Audio-{text,instrument} events - - -******** -aug 14 - -pl 7 - - Audio_element as base for Audio_item and Audio_staff. fixes -midi-lyric segfault - - added "Gallina a due violini" (MB) - - make MIDI files on website. - - Collision now also is an Element_group. - - bf: announce Collision when created - -******** -aug 13 -pl 6 - - bf: 13 shift/reduce in parser fixed - - bf: plets in parser - - bf: main.o (again) - - german notenames (RM) - - Score_elem::offset_ now relative to its X/Y groups. Slight -speed increase? - -******** -aug 12 -pl 5 - - - Wordwrap revert - - added LilyPond in WWW titles - - oops. A quaver is a 8th note, not a 4th - - bf: main.o remaking in lily/Makefile - - unhair Voice_iterator - - bf: error if no music in score - - bf: don't create translators if Chord element is empty - - bf: ctor of Tempo_req - - use virtual do_equal_b() for request comparison - - bf: turned off default plets: c4*2/3 c4*2/3 -> c4*2/3 c4*4/9 - - bf: time_int() of an empty chord/voice - - more corrections to GMP Manifesto - - debian updates (AF) - - bf: g++ ICE in Performer_group_performer - - use fread() for reading in Simple_file_storage - -pl 0.1.3.jcn1 - - mi2mu: simplification +bf lily_stream: indentation and wordwrap - - mi2mu: bf: blunt: non-alpha(num) chars from identifiers - -********* -aug 11 - -pl 4 - - correction of GNU Music Manifesto - - moved lowlevel stuff of Source_file to Mapped_file_storage. -Interface via File_storage. (Now using Simple_file_storage) - - bf: c4-"A"-"B" - - bf: exit status - - declarable keys - - Engraver_group_engraver::find_simple_engraver() - - bf: lily/Makefile - - bf: Midi_note_event ctor - - bf: tempo request - - popular twinkle twinkle (JV) - - mudela: parse tempo requests, \midi{ \tempo 4= 60;} - -****** -aug 8 -pl 3 - - don't crash if no Clef_engraver. - - PScore -> Paper_score - - bf: Score_elem::extent() init of interval - - bfs: {Horizontal,Vertical}_group related - - bf: don't change original Item while doing making - multiple copies - - bf: configure DATADIR - - bf: type of spanbar. - -pl 0.1.2.jcn1 - - minor doco fixes - - revived Midi_walker - - moved midi out of performer-* to audio-* - - Audio_staff - - removed all members from performers - -******* -aug 7 -pl 2 - - junked Line_of_staff - - bf: --output - - bf: . in lexer - - bf: mi2mu version number. - - bf: in mudela-book - - bf: don't forget to make mi2mu - - Bar_number_grav: measure numbers (experimental) - - Bar_column_engraver, Bar_column: scripts on bars - - rewrite of {Horizontal,Vertical}_group. Yes, again. -Now neatly integrated into class hierarchy - - Axis, Axis_group - - Debian rules (AF) - -pl 0.1.1.jcn1 - - Audio{column,score,item,...}, more generic audio - - bf: Makefiles - - bf: mi2mu mudela version -********* -aug 5 - -pl 0.1.1 - - {Horizontal, Vertical}_group. A score_element may be in at most one. - - This means Horizontal_group_item and Vertical_group_spanner need special support. - - This also means a big speed increase - - configure cleanup - - bf: Choleski solve. - - doc updates: lilygut, INSTALL - -pl 0.1.1.hwn - - recode of Break/Colhpos interfaces - - Gourlay_breaking: dynamic-programming optimal solution for - casting off. Word_wrap is still optional - - some printing short cuts if no -d specced. - - band_matrices for column calcs - - more Diagonal_storage fixes - - retake: INFTY fixes ( now infinity_mom, infinity_f ) - -pl 78.jcn3 - - configure: ln and zip - - target doosdist -> lilypond-x.x.x.exe.zip: + executables - sources - - - diff --git a/NEWS-1.0 b/NEWS-1.0 deleted file mode 100644 index 5cff9ea377..0000000000 --- a/NEWS-1.0 +++ /dev/null @@ -1,515 +0,0 @@ -pl 17 - - fixed RPM building. - -pl 16.hwn1 - - ridiculous slur dims fixed. - - ly2dvi32.py -> ly2dvi.py, ly2dvi.sh -> ly2dvi-old - - use re iso. regex for python stuff. - - bf: mudela-book.py - - updated install directions. Made lilypond-login for csh - - bf: installdirs of MF stuff - - Dictionary implementation using hash tables (LilyPond is 3% faster) - - Cache [non]group_l_arr () calls in translator-group.cc (LilyPond is 4% faster) - -pl 16.uu1 - - debian URLs, make/stepmake.make patch - - further debian fixes. - -pl 14.tca1 - - partitas - - prall{mordent,prall} patch. - -****** -pl 16 - - read property ydirection and tieYDirection for tie direction. - - bf: slur over rest. - - bf: include path - - part of jcn2 - - configure --enable-guile - -pl 15.jcn1 - - autoconf on mf,mfont mp,mpost - -pl 15.am - - Lots of patches from *Adrian* *Mariano*! - -********** - -pl 15 -pl 14.hwn1 - - \lyrics iso \lyric (mudela 1.0.7) - - cleaned up real_expression syntax. - - removed optional_semicolon nonterminal after toplevel assignment - - MInterval Music::time_int () -> Moment Music::duration () - - junked Music_iterator::daddy_iter_l_ - - junked Sequential_music::offset_mom_ - - tempo compression: - * syntax: \times 2/3 Music - * Compressed_music, Compressed_music_iterator - - flower: init rational to 0 - - flower: removed P?Cursor<>::P?Cursor (), using pointer iso ref now. - - don't install into TeX, but into ${datadir}/{mf,tex,ly} (todo: ps) - - -********* -pl 14 - -pl 13.uu1 - - syntax for \translator: (\name "Name") - - bfs for footer - - bf: init/{book,center}-fragment.ly, YODL nofooter stuff. - - bf: redeclaration - - bf: doc fixes - - bfs: egcs 1.1 - -pl 13.mb1 - - bf: Lookup::afm_find, the width was undefined for the feta fonts. - - bf: refman.yo - -pl 13.jcn5 - - bf: init/paper* missing `;' - - lilyponddefs.ps fixes - - crude output name fix, see scores.cc - -pl 13.jcn4 - - some ps output fixes - - lilyponddefs.ps: some sane implemenations - - removed (some) ghostscript internals - -pl 13.jcn3 - - PostScript output version 0.0; do - export GS_LIB=$HOME/usr/src/lilypond/tex - export GS_FONTPATH=$HOME/usr/src/lilypond/mf/out - make -C mf pfa - lilypond -t example-1 # or try: lilypond -t twinkle :-) - gv lelie.ps - - ps: - * lots of output fixes, chars, strings - * tex/lilyponddefs.ps: added rather braindead defs - -pl 13.jcn2 - - tex/lily-ps-defs.ps (./tex?) - - grand output rehack - * dropped {dimen,tex}.{cc,hh} - * {ps,tex} stuf to {Ps,Tex}_lookup - * init/table*.ly: added #parameters - - ps fonts: - * ps-to-pfa.py generates valid type-3 fonts - * do: make -C mf pfa - * set: GS_FONT=GS_FONTPATH=$HOME/usr/src/lilypond/mf/out - -pl 13.jcn1 - - crude postscript type 3 font: - make sure to have mfplain.mem metapost precompiled macros - make -C mf ps - gv out/feta20.sp - -******** - -pl 12.mb1 - - bf: feta-timesig.mf Added horizontal space, minor corrections. - - Changed meaning of Staff.timeSignatureStyle: - C Use C and stroked C for 4/4,2/2 - old Use old style mensuration marks - 1 Use single number - Cn/m Set symbol explicitly, n/m=2/2 or 4/4 - oldn/m Set symbol explicitly, n/m=2/2,3/2,3/4,4/4,6/4 or 9/4. - All other time signatures are typeset with the default two-digit - layout. - - -pl 12.jcn2 - - Lookup abstract base class - - Lookup/Symtable(s): separation of input/output - -pl 12.jcn1 - - preparations for braindead PostScript output - -pl 12.hwn3 - - praeludium-fuga-E to relative mode - - bf: mudela-mode.el - - bf: BIBINPUTS - - more dutch glossary + explanations - - table-to-html fixes -pl 12.hwn2 - - bf: mymycode in .yo - - VERSION to out/ - - add VPATH to mutopia - - access_Identifier (bool): (non)copy arg now explicit. - - bf: lilypond-latex.tex - - - -pl 12.hwn1 - - \remove "Engraver_type"; - - \output "bla" -> output = "bla" (mudela 0.1.6) - - \property defaultclef -> \property defaultClef - - naming of access_{Engraver,Performer,Translator_group} () - - changed syntax for \translator in \paper{} (mudela 0.1.6) - - declared contexts: - - StaffContext = \translator { .. } - \translator { \StaffContext } - - - elt_b -> elem_b - - bf: add Separating_line_group_engraver to RhythmicStaff. - - -pl 12.am1 - - large doc patch, ChoireStaff -> ChoirStaff - -******* -pl 12 - -pl 11.uu2 - - added Transposed_music for mixing transposition and relative - -pl 11.jcn1 - - bf: config.make striproff - - texinfo -pl 11.mb2 - - feta-timesig.mf: Added some flesh on C and C2, - added old-style mensuration marks. - -pl 11.mb1 - - Added feta-timesig.mf, font for C and alla breve. - - -pl 11.uu1 - - new \property: meterSignatureStyle for C and C2 time sigs - - bf: BIBINPUTS - - stepmake 53 - - bf: gif vs. png stuff - -******* -pl 11 - -pl 10.uu2 - - plet-spanner fix. - - large doc patch (thanks Adrian) - -pl 10.jbr1 - - aclocal.m4, stepmake/aclocal.m4: Choose specific python - - stepmake/bin/release.py: Use the same python calling process - - make/lilypond-vars.make: PATH should not use PATHSEP. It is fine - to hard code it to `:' on both Windows NT and UNIX. - - stepmake/bin/package-zip32.sh: Perform configure with a specific - python, ie cygwin32 python on Windows NT - -pl 10.uu1 - - junked \octave - - marginBreakPriority, direction==LEFT - - mf-to-table NT fix (JBR) - - createKeyOnClefChange property - - -pl 10.jcn1 - - mf-to-xpms for Harmonia - -pl 9.jbr1 - - scripts/convert-mudela.py: We must close infile and outfile before - a rename occurs. NT Windows locks open files. - stepmake/bin/package-zip32.sh: renamed all python bins to: - .py in NT Windows distribution. - - -********* -pl 10 - -pl 9.jcn1 - - started gnuisation of website - * filetype and size - * 'no gifs due to patent problems' - - bumped stepmake version nr (again): - please update stepmake/VERSION after making changes to stepmake... - -pl 9.hwn1 - - do default midi,paper by toplevel \paper / \midi (mudela 1.0.4) - - bf: error if no Score context - - notename table now can be declared as well. - - junked \clear - -********* -pl 9 - -pl 8.uu1 - - junked \staff, \multi - - bf Music_list::Music_list (Music_list const&) - - AC_SUBST(PATHSEP,DIRSEP) - - generate Documentation/tex/out/*.bib (AM) - - a4 fixes (AM) - - bf: metafont-*.make - - parser.yy: intlist mods. (mudela 1.0.2) - - \melodic -> \notes (mudela 1.0.3) - - typo: calcalute_dependencies () - -pl 8.jcn3 - - gif -> png - * ps-to-pngs.sh - * stepmake - * website - * yodl-1.31.4 (to be released) - - target 'texinfo' -> 'info' - -pl 8.jcn2 - - more doco in texinfo (with yodl pl3) - - bf's: package-diff - -pl 8.jcn1 - - removed tutorial from texinfo, yodl2texinfo is still rather broken - - bf: setlocale NUMERIC to 'C' - - removed ugly space from print-dimen - -******* -pl 8 - - make website fixes. - -pl 7.jcn1 - - minor stepmake/yodl fixes - -pl 7.uu1 - - - changed separator in vocabulary - - added barAlways and defaultBarType properties. - -pl 7.hwn1 - - changed header format. Use a + for concatenation. - - \header { key = "concat" + "string" } - - (mudela 1.0.2) - - allow computed properties in translator definition - - GrandStaff = \translator { - minVerticalAlign = 1.5\staffheight; - .. - } - - - Music inheritance. Datastructure and parser now follow this grammar - - Music_list: - | Music_list Music - ; - Simultaneous_music: '<' Music_list '>' - ; - Sequential_music: '{' Music_list '}' - ; - - - bf: Item::do_unlink () don't iterate on attached_span_l_arr_, -because it is changed by Spanner::set_bounds () (thanks Thomas) - - bf: URL Documentation/index (thanks EP) - - bf: twinkle.ly (thanks EP) - - bf: mi2mu (thanks Murray) - - bf: mudela-book --dependencies - - split LaTeX and TeX stuff - -pl 7.tca1 - - more Partita's - -pl 7.jbr1 - - aclocal.m4,make/lilypond-vars.make: added PATHSEP as AC_SUBST to - help support Windows NT doco build. - Documentation/ntweb/index.yo: minor spelling changes - - -************* -pl 7 - - refman updates by Adriano Moriano. - - -pl 6.jbr2 - - scripts/ly2dvi32.py: Fixed bug with lily input including multiple - files. Also, we now stream out lilypond log one line at a time - for better feedback. - -pl 6.jbr1 - - scripts/ly2dvi32.py: Added some doco, add postscript option, set - MFINPUTS along with TEXINPUTS, modified initialization sequence. - Made some Python style changes per Han-Wen suggestions. - - Documentation/man/ly2dvi32.yo: Added a manpage for ly2dvi32. - - stepmake/bin/package-zip32.sh: Added doco distribution. Removed - the installation directory after zip operation. - - Documentation/ntweb/index.yo: LILYPOND -> LILYPONDPREFIX and - comments about MiKTeX-1.11. - -pl 6.tca1 - - First movement of Partita II (BWV 826) in - mutopia/J.S.Bach/Cembalo-Partitas. Lilypond output was so - beautiful that I'll have to write the rest of the partita. - -pl 6.uu2 - - mudela-book.py --dependencies - - more doc fixes (AM) - - warn if declaring a keyword. - - \grouping 4 2*3; now accepted. - - patches to standchen.ly - -pl 6.uu1 - - - mudela-book handles \input now - - vocabulary fixes by Adrian Moriano - -******** -pl 6 - - largish rehack: - * Super_element is now an `abstract' class, - * Paper_score directly contains one Line_of_score. The - breaking/postprocessing/deletion is mixed with the output phase. - * Hopefully this will save memory for large scores. (benchmarks, anyone?) - * bf: Horizontal_vertical_group_item::do_unlink () should call - - Axis_group_item::do_unlink () - - - changed LILYPOND to LILYPONDPREFIX - - added tfm and dvi target for mf/ - - reincluded english.ly - - doc fixes (thanks, Adrian Moriano) - - doc fixes. - - mf: ex height added. - -pl 5.mb1 - - Mudela 1.0.1: Changed \accidentals -> \keysignature - - Identifiers can be used in textual scripts: - - - tempoString="Allegro molto assai"; - - [...] - - c^\tempoString - - - -pl 5.jbr2 - - aclocal.m4,config.h.in,flower/file-path.cc: Added PATHSEP and - DIRSEP to configuration to support windows style path and pathlists. - - stepmake/bin/package-zip32.sh,stepmake/stepmake/package.make: - zip target now calls package-zip32.sh which creates winnt - binary distribution zip file. xzip target continues to use - package-zip.sh for Jan's cross-compiled version. - - lily/main.cc: Added a search for LILYPOND environment variable to - better facilitate binary distributions. - - Documentation/README-W32.yo: Updated information on running lilypond - on winnt. - - - -pl 5.jcn1 - - (step)make fixes from yodl - - minor doco fixes - - bf: patch in website after 'make release' - -pl 5.jbr1 - - Documentation/ntweb/Makefile: Used absolute url for LilyPond Homepage - - Documentation/ntweb/index.yo: Minor mods per Jan's suggestions - - - - -************* -pl 5 - -pl 4.jcn1 - - texinfo docs, lots of yodl TODO - - junked some makefiles - - ntweb: use BLURB - - bf: pletvisibility - - adaptions for yodl-1.31.2's automatic texinfo conversion - - reinclude of 1.jcn2: - - renamed -alto -> viola - - bf: avant-gardish six preludes - - bf: ly2dvi warnings - -pl 4.jbr1 - - stepmake/stepmake/install-outfiles.sub.make: fixed typo - - scripts/GNUmakefile: add ly2dvi32 to installation list and fixed - included executable-targets.make to facilate installation of scripts - - Documentation/ntweb: Fixes to nt web page and added topdoc like - automation. - -********* -pl 4 -pl 3.mb2 - - Changed text script alignment: center -> left - - TeX commands counts as one character when calculating - the length of a Text_def - -pl 3.jbr2 - - Documentation/topdocs/index.yo: Added link to NT dist page - - Documentation/ntweb/: Added Makefile and index.yo to build the - NT dist page - -pl 3.hwn1 - - stepmake hacking - -pl 3.uu1 - - stepmake MAKEFILES -> STEPMAKE_TEMPLATES - - count \texcommands in tex string - - -pl 3.jcn1 - - bf: website: empty toplevel readme's - - bf: xs4all (again?) - - can't administer ftp site now: put patch into website - - -pl 3.jbr1 - - stepmake/stepmake/Executable_targets: UNIX cross-compile doesn't - work with $(DOTEXE) on source of install command. - - stepmake/Generic_targets: creating multiple dirs with mkdir - requires -p option - - scripts/ly2dvi32.py: General and Winnt specific fixes - - -********* -pl 3 - -pl 2.uu1 - - solaris 2.6 compile/make website fixes. - - rm'd WWW.make - - stepmake .43 - - pcnov095.win.tue.nl -> ftp.cs.uu.nl - -pl 2.hwn1 - - mi2mu naming of track output - - bf: do key restore sign only once - - ly2dvi32 preliminary version (JBR) - - bf index.html link - - bf mudela-book.py - - -********** -pl 2 - - scalar compile stuff - - bf install directory - - YODL note - - GUI faq update - - bf ly2dvi - - stepmake split: Po.make - - make check target - - dist AFMs and manpages - - split up mudela.yo in glossary.yo, tutorial.yo and refman.yo - -pl 1.jcn1 - - www.digicash.com www.xs4all.nl - - fake msgfmt - - make uninstall fixes - -pl 1.jbr2 - aclocal.m4,stepmake/aclocal.m4,stepmake/stepmake/Variables.make: - Support install target for unix, unix cross compile, and - Windows NT - -pl 1.jbr1 - stepmake/stepmake/Executable.make: DOTEXE was missplaced - - scripts/convert-mudela.py: program_id should write to stderr - -************** -pl 1 - - mi2mu fix: \key "D" - - \hoffset - - started new NEWS file - - lots of stepmake hacking - - aclocal.m4 copied from stepmake - - ly2dvi 0.12 - - build the doco from the source tree. - - include website in RPM - diff --git a/NEWS-1.1 b/NEWS-1.1 deleted file mode 100644 index b98baa12cf..0000000000 --- a/NEWS-1.1 +++ /dev/null @@ -1,2006 +0,0 @@ -1.2.0 - - website fixes. - - initialize Script::dir_ - -pl 69.jcn1 - - doco typos - - tex-rules typo - - added missing feta-braces*.mf -pl 68.lu1 - - texinfo fixes -**************** - -pl 68.jcn2,3 - -pl 68.hwn1 - - more tutorial stuff. - - note^\dynamic scriptdir. - - dynamics listen to verticalDirection as well. - - \property automaticMelismas -> \property automaticMelismata - - dynamic padding for crescendi. - -pl 68.jcn1 - - small tutorial fixes - -********* - -pl 67.hwn1 - - tutorial updates - - \property beamAuto -> noAutoBeaming - -pl 67.uu1 - - abc2ly updates - -pl 67.jcn1 - - bfs: refman/parser subtract - - chord::find_additions_and_subtractions: termination assurance - - bf: refman: chord-inversion examples - - -******** - -pl 66.hwn1 - - bf: chord mode unsigned '-' -> unsigned CHORD_MINUS (1 SR conflict). - - refman reedit. - - dotdown only when verticalDirection is set. - - bfs: abc2ly convertor (more or less) successfully converts -movement 2 of Beethoven 7. - - \repeat "semi" -> \repeat "volta" - - all spacing params into paper vars. - - spacing before grace notes. - - warn if font not found. - - staccato dot / tenuto centering - - spacing for clefs. - - bf: Stem_staff_side::do_substitute_element_pointer (); - - new screenshot - -******** -pl 65.hwn1 - - refman updates - - added \simultaneous { } , \sequential { } syntax, for -consistency. - -pl 65.jcn2 - - bf: if tie then melisma - -pl 65.uu1 - - bf: squashed 2 sr conflicts in parser. - -pl 64.jcn2 - - stanchen almost without " " hacks - - if tie then melisma..? - - refman updates - - Abbreviation.beam -> Chord_tremolo - - bf: chord tremolo vs beam over rests - - bf: note width for noteless stem - - - -******** -pl 64.jcn1 - - resurrected abbreviation beam - - coriolan fixes - -pl 64.hwn1 - - reference-manual updates. - - slurdash -> slurDash, keyoctaviation -> keyOctaviation - -pl 64.uu1 - - \property forceHorizontalShift - - bf: denneboom.ly - - warn if translator switching to self. - - warn if brace at end of lyric syllable. - - bf: Repeated_music::alternatives_length_mom () - - \property automaticMelismas: if slur then melisma - - \property noVoltaBraces - - bf: star-spangled-banner - -pl 63.lu2 - - very tight: hinterfleisch -> 0 : input/bugs/spacing-very-tight.ly - - bfs: neutral beam and tie directions (daar was ik al bang voor:-) - - bf: abe: may beam over skip, as long as note present too - - bf: scsii-prelude: added slurs using skips - -********* -pl 63.uu1 - - mutopia updates courtesy Peter Chubb - - Don't make Time_scaled_music for c4*2/3 entry, only do the -time compression. Should cure spurious Tuplet_brace/spanner warnings. - -pl 63.hwn1 - - bf: Spacing for key/timesig at end of staff. - - negative font magnification - - slurs on grace notes. - - paper var stem_default_neutral_direction - - bf: dot-columns. - -pl 63.jcn2 - - bf: midi2ly/duration-iter/convert: handle durations >= 1 - - set reasonable default for text/dynamic paddings - -pl 63.jcn1 - - junked some of (my) old metapost stuff - -pl 63.lu1 - - some faq entries - - chord input and proceccing fixes - - bf: nederlands.ly - -********** -pl 62.jcn4 - - fixes coriolan - -pl 62.hwn1 - - ps-to-pfa.py: use std modules re, find - - minor input fixes - - use mfplain.mp - - Metapost does unfill with setgray. This confuses -GS. Do text substitution with eofill. - -pl 62.jcn3 - - bfs: preludes - - found more wierd spacing - -pl 62.jcn2 - - bf: don't start auto-beam on stem that contains only a rest - - bf: rm .ms yodl output - - bumped stepmake version - -pl 62.uu1 - - don't space rhythmic requests coming from Lyrics. - -pl 62.jcn1 - - bf: auto-beamer: consider starting beam based on new rhythmic head - - bfs: preludes-4, cello-suites - - \addlyricsified standchen and twinkle (ugh: \repeat and \addlyrics) - - bf: interstaff slur slope damping - - bf: in-band signaling slur snap - -pl 61.jbr1 - - Documentation/ntweb/GNUmakefile: Made EXTRA_DIST_FILE style fix and - added dist-plain target as dependency to the default target. - - scripts/ly2dvi.py: getpid does not behave very well across platforms - so I am creating temp file names with the Python tempfile module. - The generate lilypond dependency file option was broken and - is now operational. I also changed the dependency switch - from -d or -M to match lilypond. - - stepmake/bin/package-zip32.sh: Added build of ntweb html - documentation - -*********** -pl 61.hwn2 - - revise / junk various input files. - - junk Music_list_iterator - - bf: declared paper + \shape - - bf: \shape and wordwrap - - Busy_playing_req () - - Music_iterator::try_music_in_children (), -so explicit \context Staff is often not needed for - * tuplets - * repeats - - automatic rest detection for \rhythm - - regtest tight-spacing.ly - - regtest lyric-combine.ly - - Melisma_playing_req, Melisma_engraver, Busy_playing_req: -stuff for syncing music & lyrics. - - simplify Extender_engraver, Hyphen_engraver. Assume lyrics come in from only one voice. - - docced ambiguities in grammar. - - mudela-book -I behavior, verbosity. - - state search path when file not found - -pl 61.hwn1 - - bf: \scm with --safe - - (ly-gulp-file) - - no need to set GS_LIBDIR, .ps files are inlined and directly -printable. - - bf: spacing engine - - fixed paper11/13/16/20/23/26.ly - - use (header-end) iso {ps,tex}setting - - bf: convert-mudela --output - - move \version check to lexer.ll - - moved repeated-music-iterator.cc to folded-repeat-iterator.cc - - bf: broken crescendi - - removed delayed Spanner breaking. - - new implementation of \rhythm: - * Lyric_combine_music - * Lyric_combine_music_iterator - * \property melismaBusy sets melisma state. - * (commented out in parser.yy -- solution is not good enough yet.) - - bf: record def spot of seq/sim music - - junk Music_iterator::next_music_l (), Music::to_rhythm () & friends. - - junk Re_rhythmed_music & friends - - mudela 1.1.62: \shape = -1 -2 -3; -> \shape -1, -2, -3; etc. - solves one ambiguity. - - grace notes at end of music don't crash Lily. - -******* -pl 60.jcn2 - - moved creation of $BUILDDIR/share/locale into set-lily.sh - - slur slope change constraints when snapping - - slur height damping based on bow height - - don't typeset unfinished (auto) beams - -pl 60.jbr1 - - Documentation/ntweb/angels.ly, Documentation/ntweb/guile.patch: added - - Documentation/ntweb/GNUmakefile: add above to EXTRA_DIST_FILES - -pl 59.mb2 - - Tempo changes in MIDI output! - - gallina.ly:auto-beaming - - added property articulationScriptVerticalDirection - (useful in N.W.Gade/score.ly) - - bf, N.W.Gade: removed some more misprints - -pl 60.uu1 - - bf: hara-kiri.ly - -pl 60.jcn1 - - interstaff slur tuning - - added some regtests - - removed now silly check in encompass-info - -********** - -pl 59.uu1 - - papervar loose_column_distance - - scripts don't collide. - - bf: midi2ly outputs \context iso \type - -pl 59.jbr1 - - lily/colhpos.cc: fixed typo - - Documentation/ntweb: Updated News and added all the files - associated with Windows Distribution web page. - - stepmake/bin/package-zip32.sh: added the ntweb page to formated - distribution. - -pl 59.jcn1 - - bfs: slur damping - - papervar slur_interstaff_snap_to_stem - -pl 59.hwn1 - - \property graceAlignPosition : put grace notes after main note. - - moved pianobrace stuff into Lookup - - moved Local_key_engraver out of Voice context, and -acknowledge Grace_align_items. Solves tie + accidental problem. - -pl 59.mb1 - - Some small clean-ups and bug fixes - -*********** - -pl 58.uu1 - - experimental pdftex support, courtesy Stephen Peters. - - --version support - - junked complicated loose column handling. - - only stretch the extra space after prefatory matter, not the -entire width of prefatory matter. - - standardise(d) switches:-d for debug, -M for Make deps, -m for midi-only. - - bf: papervar non_musical_space_strength now works. Set to 8 (-> Strong! ) - - bf: space after time_sig. - - bf: decrescendi. - - bf: barlines on voltas - -************ -pl 57.hwn1 - - bf: accidentals on grace notes. - - \property graceAccidentalSpace - - bf: ignore grace notes duration for non-grace spacing. - - uncommented Key_req::transpose. - - Dot_column::do_post_processing (): better dot collisions, see dots.fly. - - derive Dot_column from Note_side_item. - - renaming of files - * heads-engraver - * request-iterator - * p-score - * engraver-group - -pl 57.jcn3 - - bf: no extension: assume .ly - - bf: bow::do_width; which in turn allowed - - removed broken interstaff slur damping hack, and - - bf: slur height damping fixes damping - -pl 57.jcn2 - - bf: ? priority and snap to stem - -pl 56.jcn4 - - interstaff slur fixes and damping - -pl 56.mk1 - - bf: collision.cc: collisions between chords with different - stem directions and close heads. - -****************s************** - -pl 56.jcn3 - - slur de-hairification - * slurs always attached to noteheads, by default - * corrections for steep and high slurs - * snap to stem end when close - - bow/tie/slur dy/dx fix - -pl 56.hwn1 - - some spacing tweaks. - - bf: two repeats + alts after each other. -pl 56.jcn2 - - tie: bfs + even simpler - -pl 56.jcn1 - - bf: re-added \textflat,sharp to fix chords... - - bf: chord-modifier and mandatory dot: c-maj5 - - tutorial chord fixes - - tie fixes and boldifying: - * removed sloping (dy!=0) code - * use actual note-widths - * y[left] == y[right] - * follow OSU rules, I hope (from comments in text -- must check) - * undetermined direction -> down; inverse of stem - - bf: beam: undetermined direction -> up; like stem - - slur-symmetry fixes - - fix for \rhythm and seq_iter childs (still crude, but more effective) -********* - -pl 55.uu1 - - use GS' anti aliasing - -pl 55.jcn1 - - auto-beamer: consider current duration first in ending/starting beam - this way, you can have 16ths auto-beamed, in some way, but 8ths never - beamAutoEnd_16 = 1; - beamAutoEnd_8 = 1/8; - - added some classes and few lines of doco to .dstreamrc - - refman: - * comment out broken - * commented out stale tex macros (tex/* dir too) - * bfs/new syntax: chords - - more midi2ly renaming stuff - - bf: make info (midi2ly and other renaming) - -pl 54.jcn2 - - bf: auto-beamer: don't beam over skips - - update BUGS - - -pl 55.mb2 - - Font update: added more mensural style time signatures, - old2/4, old6/8alt, old4/8 thanks to Christian Mondrup. - - bf: correct indentation of first line (removed \leavevmode) - plain TeX still gives wrong indentation - - bf: volta brackets broken over several lines get open end. - Final bracket gets vertical end if it stops at double bar. - - Dashed grace flags also for durations shorter than 8. - - N.W.Gade: fixed some details - -pl 55.mb1 - - bf: font magnification also in PS output - - bf: set the GS_* variables correctly in buildscripts/lilypond-*.sh - - bf, lily.scm: errors in (de)crescendo - - bf, lilyponddefs: removed \noindent - - -pl 55.hwn1 - - fixes: horn-concerto-3.ly - - bf: grace before tuplet. - - bf: decrescendo - - bf: multimeasrest numbers centered. - -**************** - -pl 53.jbr2 - - Documentation/ntweb/index.html: Updated nt distribution web page - -pl 54.uu1 - - bf: Stem lens for beams. - - move meta doco to Documentation/metadoc - - move .bibb to Documentation/bibliography - - rename mi2mu to midi2ly - - removed other-packages.bib to comply with GNU standards - -pl 54.jcn1 - - mutopia/J.S.Bach/Duette 1&2 - -pl 54.mb1 - - Renamed \wheel to the \coda - - bf: correct gap in tuplet braces - -pl 53.hwn2 - - move more parameters from PS/TeX to Lily. - - PS cleanup - - TeX cleanup. - - bf: also make (empty) bar at end of voltabracket. - - bf: don't put slur over rest. - - -pl 54.uu1 - - debian updates (anthony fok). - -************* -pl 54 (july, 8) -pl 53.jbr1 - - scripts/ly2dvi.py: A fix for the multitude of file systems supported - by windows. As long as the paths that the cygwin apps use are - UNC style and the paths that the native windows apps use are DOS - style everybody is happy. I add quick and dirty unc2dos function - to facilitate this approach. - -pl 53.hwn1 - - bf mudela-book. - - better min distance for multi measure rests. - - junk ATOM_SMOB - - control tuplet gap size from paper. - - bf: output header as PS strings for PS out. - - bf: cached-fontname - - control volta height from paper block. - -pl 53.jcn5 - - \rhythm-ified and text bfs: standchen.ly - - walk rhythm through *_iterator::next_music_l () - -pl 53.jcn4 - - more abc2ly hacking, including lyrics and \rhythm - - bfs: \rhythm - - \rhythm-ified input/twinkle.ly - -pl 53.jcn3 - - put rhythm A on pitches/lyrics B: \rhythm MUSICA MUSICB - input/test/rhythm-melody.fly - input/test/rhythm-lyrics.fly - - syntax changes: -o * dot-only duration dropped: use c4 c4. iso now invalid: c4 c. - * chords: optional_dot now mandatory: - \chords { c-1.2.3 } iso now invalid: \chords { c-1 2 3 } - * @c@ (notemode_chords) syntax dropped. rather use: - \notes { c d \chords { e f } } - -pl 53.jcn2 - - \property graceFraction: part of next note taken-up by grace(s). - - Note_performer: add moments for delayed notes, - fine for single grace notes: hear gnossienne-4.ly - -pl 53.jcn1 - - grace performance - - fixed tie-performance - - bf: abe - -pl 53.gp1 - - added Hyphen-engraver, Hyphen-spanner -************ -pl 52.jcn3 - - bf: mi2mu: midi without key - - try at grace-performer-group; breaks MIDI output even when no \grace - - silly tie-performer - - performers play_element () delayed to do_pre_move_processing () - -pl 52.jcn2 - - bfs standchen + grace, gnossienne-4 - - decoupled midi output from input - -pl 52.jcn1 - - bf: moved accidental code from Key_engraver to Key_change_req - - bf: midi-key - - bfs: mi2mu: core-dumps, keys, key-names, key-changes, notenames - -pl 52.hwn2 - - new-beaming.cc: new beaming code - * now does [c8. c32 c32] correct by itself. - * beam over barlines - * non-fitting stems handled gracefully (eg. [c8 c4 c8] ) - - junked rhythmic grouping, \grouping and all associated bits. - - bf: do try_visibility_lambda for nonbreakable items as well - (fixes \nobreak on barline) - - bf: Cons_list::truncate() - -pl 52.hwn1 - - repeat-engraver cleanup -pl 52.gp1 - - bf: make doc++ corrected to only include *.h and *.hh files. -pl 52.mb2 - - Added \repetitions: prints symbol for repeated bars. - Same syntax as multi-measure rests! - - Added \segno and \wheel script symbols -pl 52.mb3 - - Added barSize property. Junked barsize variable. - -************ -pl 51.uu2 - - grace note flags, move Lookup::flag into Stem - - faq updates: doc++, Matt's page - - fixes for doc++. - - bartype string uses "brace" and "bracket" iso. "{" and "[" - - some of assert()s replaced by programming_error () - -pl 51.mb1 - - N.W.Gade: added real grace notes - - feta-banier.mf: added grace note flag - -pl 51.uu1 - - use weAreGraceContext \property to determine self_grace_b_ - - made more engravers grace aware. - -pl 50.jcn2 - - filed egcs bug report for powerpc. - - removed unnecessary #ifdef powerpc - - grace and other fixes for auto-beamer - - grace and other fixes for (beam-)stem-lengths - - input/test/bugs/hairy-grace.ly (urg) - - input/test/bugs/grace-accidents.ly (urg) - - input/test/bugs/grace-grace.ly (core) - - fixes: gnossienne-4.ly - -pl 50.hwn2 - - Timing_translator: add proccing moments to nearest global translator, -not to top global translator. - - cadenza.ly: grace notes. - - bf: auto staff switching - -************ -pl 51 -pl 50.hwn1 - - grace notes: - * Grace_iterator - * Grace_music - * Grace_engraver_group - * move Score::run_translator to Global_translator::run_iterator_on_me - * stemLength property, Stem::length elt property - * Grace_align_item - * Note_head_side baseclasses Local_key_item, Grace_align_item - * Local_key_engraver moved to Voice. - * Grace_position_engraver - * Added Rhythmic_head::stem_l_ - * Various other robustifications. - - lily.scm: scm->string - - folded reps without alts. - - Paper_outputter uses scm->string - - stem params now in staff positions iso. real dimensions - - internal: Junk all G_ and g- prefixes - -************ -pl 49.mb1 - - bf: ly2dvi -N - - Added dynamicPadding property (applies only to dynamic marks, - not (de)crescendi. - -pl 49.jcn4 - - resurrected gnossienne-4 - - Documentation fixes (for texinfo get yodl-1.31.13, tbr) - - minor abc2ly fixes; successfully converted some simple abc files from - http://faeryland.tamu-commerce.edu/joyce/ - - www.mail-archive.COM - -pl 49.jcn1 - - guile scm_gc_mark () workaround: - - via scm output wrapper buildscripts/lilypond.sh, set: - PATH=$LILYPONDPREFIX/buildscripts/out:$PATH - - scm output fixes - -pl 48.hwn2 - - bf: rest-collisions. - - cleaned up standchen - - bf: slur dims. - - bf: unfold without enough alternatives. - - Use Lily version for \version. - - -pl 49.uu1 - - ran purify. Fixed some small problems, plugged some leaks. - - bf: linebreak at |: - - doc updates by Adrian Mariano - -pl 49.mk1 - - Breathing signs by Michael Krause - -************ - -pl 48.hwn1 - - \property hshift -> \property horizontalNoteShift (mudela 1.0.21) - - cleaned up collision. \property hshift = 2 now supported. - - Spacing: - * bf: don't divide strength by distance if distance == 0.0 - * cleaned up Spacing_spanner - * simplistic optical illusion spacing for opposite stems. - - don't use Protected_scm for Score_element::element_property_alist_ - - some scsii fixes. - - Lookup cleanups; junked Lookup::paper_l_ - - abc-2-ly: tuplets, guitar chords., chords, - -pl 48.mb2 - - bf: correct accidentals after tied over note. - -pl 48.mb1 - - bf, lookup.cc: Count '{' also directly after a TeX macro - - bf: textstyle->textStyle in all examples. - -pl 48.jcn1 - - bd: interstaff slurs at line break - -pl 48.uu1 - - add a WX field to AFM output. - - add space before ; in AFM output - -********* -pl 47.jcn1 - - bf: interstaff slurs (urg: more segfaults in scm_gc_mark ()) - -pl 45.hwn3 - - Abbreviation -> Stem_tremolo. - - bf: Stem_tremolo in Beam. - - bf: Stem_tremolo over whole note. - - spacing before clefs. - - Spacing_spanner is now on by default - - junked most of Spring_spacer - - Tunable space after barline. - -********* -pl 46.mb2 - - Reintroduced the tupletVisibility property. Same values as - the old version (pletvisibility), see the Reference Manual. - Note: does not work correctly with automatic beams. - - Added a tupletDirection property. - -pl 46.uu1 - - bf: {} in texts. - -pl 45.hwn2 - - more doc updates. - - -pl 46.mb1 - - Added property articulationScriptPadding - - N.W.Gade: layout fixes - -********* - -pl 45.hwn1 - - Audio broadcast & acknowledge. - - more advanced spacing for prefatory matter - - tuplet appearance tweaking - - bf: ChoirStaff - -pl 45.uu1 - - glossary fixes (thanks Dirk). - -pl 44.jcn2 - - bf: auto-beamer: long standing br form AM - - -********* - -pl 45 (may 28) - - reinstalled Thread (there you are, John) - - german vocab. - - -pl 43.hwn2 - - split G_staff_side_item into G_staff_side_element and G_staff_side_item. - - junked old Staff_side - - Crescendo also uses G_staff_side_element - - crescendo_shorten paper var. - - create horizontal groups for break_aligment inside Break_align_item. - - more abc-2-ly fudging - -pl 44.mb1 - - bf, property.ly: change fontsize->fontSize - - N.W.Gade: removed old tie behaviour - - bf, ly2dvi: expand .sly extensions - -********* -pl 44 -pl 43.jcn2 - - bf: repeat :| placement + core dump - input/test/repeat.ly - input/test/coda-kludge.ly - - bf: mf without ljfour - * feta-accordion fix/hack for feta11 at 300dpi - -pl 43.hwn1 - - half assed attempt at ABC convertor. - - Spacing_spanner: "decentral" spacing stuff. Use -t to try. - - bf: StaffGroup vertical alignment - - \property {slur,tie,}ydirection -> {slurV,tieV,v}erticalDirection (1.0.20) - - Spanner now hangs on left endpoint. - - \property forgetAccidentals: do not remember accidentals. - Every note not in the key triggers typesetting of an accidental. - - \property noResetKey: do not reset key at start of measure: - accidental remain in effect until overriden - - bf: ties & accidentals (fix breaks oldTieBehavior) - - junked Tie::same_pitch_b_ - -pl 43.jcn1 - - configure, set-lily.sh, release stuff - -pl 42.tca2 - - lilypond don't put \interstaffline after last line. This to - get really nice vertical spacing for mudela-book. - - mudela-book: vertical spacing - - lilyponddefs.tex: commented out \parindent=0pt to get correct - paragraph indent for mudela-book - -************ -pl 43 - -pl 41.hwn3 - - reinstated \property inheritance - - \property SkipBars -> skipBars - - \property midi_instrument -> midiInstrument - - \property fontsize -> fontSize (mudela 1.0.18). - - bf: add a space after lyrics. - - junked flower DLL classes - - rewrote repeat music and iterators (mudela 1.0.17) - * Folded_repeat_iterator - * Unfolded_repeat_iterator - * New_repeated_music - * syntax change: \repeat FOLDSTRING NUMBER Music [ALTERNATIVE Music_se -quence] - - data struct simplification: junked Dynamic_req, -Absolute_dynamic_req, Span_dynamic_req, Slur_req, Beam_req. Use -Span_reqs and Text_script_reqs with type fields instead. - -pl 42.tca1 - - updated mudela-book documentation - - misc mudela-book.py - - accordion: smaller dots + little script renaming - - -pl 42.jcn1 - - bf: hp-u(rg)x: user build; sm 73 - - bf: hp-u(rg)x: sm74 - -pl 41.mb1 - - convert-mudela: convert textstyle -> textStyle - - refman.yo: properties moved to correct contexts. - - mudela-book.py: Added singleline, multiline options. - Fixed default line width bug. - -*************** -pl 41.hwn2 (may 10, 1999) - - bf: Score bar line thickness. - - more paper writing - - website tweaks. - - Graphical_element::dim_cache_ now alloced separately. - - junked Graphical_element::absgolute_offset - - Musique-de-Table - - mmrest_x_minimum now works at begin-of-line. - - junked Span_bar::extra_x_off - - \property foo.bar = \stringid + \otherstringid - - bf: stop on lexer errors as well. - - only do vertical alignment at Score level. - - tweaked ledger endings a bit. - - -pl 41.hwn1 - - small fixes. - - mudela-book.py patch (thanks MB) - -pl 41.mb1 - - Added the installation instructions to the top web page. - - N.W.Gade: Added triangolo part, minor changes. - -pl 41.tca1 - - Lookup::accordion and removed some accordionfonts - -*************** - -pl 40.uu2 - - rest ledger lines are dimensionless. - - Score_elements are added to the Paper_score directly when -announce_element () is called. This makes it possible to init -molecules from within engravers. - - changed \type to \context - - \context Contextname = ID Music is now a real separate production - * you can do - \context C1 \context C2 - - and C1 won't overwrite C2 - - * you need some extra explicit context specs, eg. if you start a -voice with a chord. - - \score { \notes { } } - - should be - - \score { \notes \context Voice { } - - - set staff margins on grandstaffs too. Center staffmargins vertically. - - \property values are not inherited anymore, i.e. setting -Score.minVerticalAlign does not set GrandStaff.minVerticalAlign, Staff.minVerticalAlign and Voice.minVerticalAlign as well. - - {Axis_spanner, Hara_kiri}_engraver which can be added at wish. -Hara_kiri should be working again. - - boilerplate for accordion stuff. - - some more paper writing. - - bf: substitute vertical refpoint as well for broken items. -(fixes clef^8) - - bf: translating molecule without elts but with dims. (bf: accidental -spacing.) - -pl 40.mb1 - - bf: ly2dvi set MFINPUTS so standard tree is found before lilypond - - bf: lilypond-regtest.doc, ls-latex.py; now finds author/title - -pl 40.uu1 - - large documentation patch by Adrian Mariano - -******** -pl 40 -pl 39.mb2 - - added more mensural style time signatures, old3/4, old6/8, old9/8 - - redesigned old6/4, old9/4 - - Updated refman.yo, lilypond-regtest.doc, clefs.ly, time.fly - -pl 39.hwn1 - - consified mi2mu (pl 37.jcn1) - -pl 39.mb1 - - bf: invisible clefs don't take any space, moved _8 below clef - - updated incipit example and macro - -pl 39.uu1 - - delete graphical objects in reverse - - faq updates. - -******** -pl 39 (april 12) - - \property textstyle -> textStyle - -pl 38.tca1 - - added scm/accordion-script.scm and update ly/accordion-defs.ly - - renamed some accordion symbols to make them more english and less - norwenglish. - - removed dot from \accBayanbase - -pl 37.script4 - - bf: molecule - - bf: tuplet spanner appearance. - - bf: less spacing after clef. Invisible bar has no dims. - - included AIMS. The why of Lily. - - warning if duplicate engraver. - - warning if no ties could be created. - - bf: \time1/4; .. beams .. - - bf: staff switching beams / slurs. - - tuplets on multiple beams. - - Documentation/tex/lilypond-regtest.doc - - bf: nested tuplets - - slur cleanups. - - bf: multi_measure_rest_engraver in Score_context. - -pl 38.uu1 - - bf: clef_8 - - bf: barnumbers. - -pl 37.script3 - - fixes for spring_spacer, introduced -Spacing_engraver - - cleanup for rest-collisions. - - hacks for GUILE gc - - mudela-book \mudelafile - - Documentation/tex/lilypond-regtest.doc - - MF rest fixes - - -******** -pl 38 (april 6) -pl 37.script2 - - bf: AFM for BlueSky AFM files. - - \penalty = 4278 -> \penalty 4278 - - URG!! fixed major (unnoticed) bug in dependency engine - - Further Script hacking: - * G_script_column - * G_script_column_engraver - -pl 37.script1 - - major Script rehack: - * G_stem_staff_side_item - * G_script - * G_script_engraver - * G_script_req - - junked Text_def, changed \property textstyle -> \property textStyle -(todo -> convert-mudela) - - Line_of_score is an Axis_group_element, no more overlapping -lines, hopefully. - - mf: whole diamond head tweak - -pl 37.mb2 - - Added property clefStyle: "" / "transparent" / "fullSizeChanges" - - New example: input/test/incipit.ly - - Documented clefStyle and restStyle in refman.tex - - Partial bug fix: octaviated clefs. Still broken!!! - - -pl 37.mb1 - - Added property restStyle. - - mensural 4th, 8th and 16th rests. -pl 37.uu1 - - FreeBSD bf - -**** -pl 37 (march 30, 1999) - - note head styles, see input/test/noteheadstyle.fly - * \property noteHeadStyle: - * diamond note heads (probably really ugly) - * cross note head. - * harmonic head (mf sources were tweaked) - * transparent for no \heads - * \property noteHeadStyle ="" for normal heads. - -pl 36.mb2 - - bf: timeSignatureStyle - - Added dynamic fz (forzando) to Lilypond - - bf: N.W.Gade, sfz -> fz - -pl 36.hwn1 - - debian fixes. - - don't insert extra alignment space for empty stuff. - - Align_element derives from Axis_group_element - - junk cruft for detecting upbeam / downbeam. - - junk all *{horizontal,vertical}* Score_element derived classes. - - G_staff_side_item::padding_f_ now generic property. - - some tweaking of beam & stem. - - junk pointerlist in Sources - - junk Stem::mult_i_, Stem::beam_gap_i_, G_staff_side_item::padding, - Bar::at_line_start_b_, Key_item::c_position_, Note_head::type_str_, - Note_head::staff_size, Stem::xdir_ - -pl 36.mb1 - - bf: N.W.Gade - -************** - -pl 35.uu1 - - more memory tweaks: don't do Score_element::line_l () when deleting lines. - - more generic properties. - - change ridic. dims assert into warning. - - tex/ midi fixes (thanks, Mats). - - bf: don't crash when no Stem_infos are set. - - extender-spanner simplification - - working MIDI chords (Thanks Dscho) - -pl 35.jcn1 - - some ps fixes - -************ -pl 35 - -pl 34.hwn2 - - "Lily Was Here" is def'd as \mudelatagline, override with - \header { tagline = "... " ; } - - \property currentBarNumber: set - current bar number. - - \property postBreakPadding: tune extra - space padding after linebreaks. - - \property textEmptyDimension: disregard script text - dimensions (untested) - - \property staffLineLeading: set the staff space - - adjustable staff space size (per staff) - - Staff_symbol_referencer as base class for elements that use - info of the staff symbol. \property numberOfStaffLines also works OK - with ledger lines. (Is that useful? dunno.) - - warning if someone does \translator with no name - - junk Item::breakable_b_ - - junk PointerList, use Killing_cons - - bf: Auto_beam_engraver. - - bf: mmrest engraver. - - use callbacks for Dimension_cache. - - lots of small cleanups. Junk various members of - Score_element & derived classes: - * Item::original_l_, - * Spanner::original_l_, - * Score_element::transparent_b_, - * Item::break_priority_i_, - * Item::break_status_dir_, - - merge Score_priority_engraver / Score_horizontal_align_engraver - - Use more generic element properties. - - precompute SCM symbols. - - remove_elt_property (): Try to junk an element property, if not - needed anymore. - - - -pl 34.uu1 - - more PointerList junkings. - - MIDI bugfix. - - be more conservative with Dicts/Hashes mem usage - -********* -pl 34 - -pl 33.uu2 - - some performance cleanups: junked PointerList instance, plugged some leaks. - - style -> fontname now in scheme. - - minor Score_element brainsurgery: - * generic element properties. - * junked Score_element::junk_links, Score_element::unlink - * junked Directed_graph_node as superclass of -Score_element, this should reduce mem usage a bit. - -pl 33.jcn2 - - fixed autobeamer's beam->unlink () - -pl 33.jcn1 - - allow autobeaming according to duration iso (crude) multiplicity - -pl 33.jbr1 - - change my email address - - Windows platform does a cp -r instead of a ln -s - -pl 33.uu1 - - bf: ^ and _ - - junked poor man's dynamics. - -********* -pl 33 - -pl 32.mb1 - - bf: \> and \< were interchanged!! - - Added property: textScriptPadding - - Changed copyright text on the Gade score. - -pl 32.uu1 - - really include Gade score now. - - fixes: install-[out-]targets, INSTALLATION_[OUT_]SUFFIXES - - install TFMs in separate dir. -pl 31.hwn3 - - Span_bar bugfix (there you go, Mats). - - bf: Score copy ctor (-> bf declaring score) - - new Tie behavior: only tie identical pitches, switchable with - oldTieBehavior - - junked cautionary_b_ from Musical_pitch - -pl 32.jcn1 - - set-lily: set weird locale links for $LILYPONDPREFIX - -********** -pl 31.mb2 - - Added example: "Imellan Fjeldene" by Niels W. Gade. - - bf: don't attach staff margin text to clef changes within the - lines. (Still not perfect: no text when a clef change happens - -pl 31.hwn2 - - be somewhat lazy in break/object multiplication. - - print # elements for memory usage impression (try -t) - - Paper_score cleanup - - junked various Pointer_list instances. Executable now is smaller. - - junked various cruft - - merged do_substitute_dependen{t,cy} to -do_substitute_element_pointer () - - more parser cleanup - - Interval uses Drul_array - - bf: I've been drinking too much - - delete break helpers before object breaking/multiplication. Try -to save some memory. - -pl 31.jcn4 - - bf: toplevel install, kpsewhich - - sm 71, require yodl-1.31.11 - - fix: slur macros - - bf: info in rpm, if available - - fix: rat != float - - bf: slur-follow-music - -pl 31.uu1 - - config.make: include GUILE_LDFLAGS - -****** -pl 31 (feb 16) - -pl 30.jcn1 - - sm fixes, intl/ fixes - -pl 30.mb1 - - Added support for magnification of TeX fonts ==> - larger dynamics in 20pt scores. (Doesn't work in Postscript) - -pl 30.hwn1 - - Debian patches (thanks, Anthony) - - Italian support (thanks, Maurizio) - - parser cleanup - - minor chord.cc cleanups. - - bf: \rc \rced - - hara kiri doesn't do suicide with normal rests. - - Hara_kiri_vertical_group_spanner generalised - - extender engraver rewrite, now __ is like ~ [] |, ie. in between -notes/lyrics. - - lyric engraver now engraves only single voices. Use -separate LyricVoices to get stacked lyrics. - - bf: bar(Non)Auto first barline - - barAuto -> barNonAuto - - -******* - -pl 30 (feb 15) - -pl 29.uu1 - - typewriter font - - star-spangled-banner bf (slur.cc). - - -pl 29.jcn3 - - fix: slur-case3.ly - - init.sly: .fly with linewidt=-1 - -pl 29.jcn2 - - resurrected ps output - -pl 29.hwn1 - - bf: coord relative to self. - - bf: error msg if no AFM found - - bf: hang script on bar in other axis too (fixes staff-side-slur bug) - - hang on scripts on clef as well (more to left for single staffs) - - -pl 29.jcn1 - - bf: volta sizes - - GNU stuff on home page - -******* -pl 29 - -pl 28.hwn1 - - bf: mid measure clefs (breakable items in non-breakable columns.) - - spanner.cc assert changed to warning - - (c) 1998 -> 1999 search replace. - -pl 28.jcn1 - - new outline TODO + .emacs setup -******* -pl 28 -pl 27.hwn2 - - un-SMOB Atom. Cons and Killing_cons as simple cons replacements. - -pl 27.jcn5 - - outline TODO - -pl 27.jcn4 - - measure-end hinterfleish patch - - input/test/coda-kludge.ly - - bf: volta-number placement - - volta: support for "1.-2." "3" - -pl 27.jcn3 - - bf's: zero-length repeats - - Auto beamer: - * turned on by default - * input/test/auto-beam*.ly - * support for time-defaults - - Chords: - * input/just-friends.ly - * ChordNameContext - * bf's: chord mode: accept STRINGS, rests - * bf's: banter_str - - new bool \property Score.barAtLineStart - -pl 27.hwn1 - - global ctors - - read lily.scm before all .lys - - Link_array derives from Array - - search repl: Array -> Link_array - - junked most static casts - - revamped Atom / Molecule: Molecule now is the public interface. -Atom is a GUILE smob. Guile takes care of allocation and list stuff. - - bar scripts on score bars (there you are, Mats) - - :||: span bar fixed - - using generic ledger lines now (regenerate fonts!) - - refman updates (Thanks, Adrian!) - - Molecule::operator = (), Molecule::do_center () - - junked Span_score_bar, Score_bar, Staff_bracket, Piano_brace. Folded functionality into Span_bar - - textstyle property for textual scripts. - - lookup cleanups (time_signature, text, stem, junked extender, filledbox, simple_bar) - - junked obsolete TeX stuff. - - ly2dvi-testpage.ly - - only make AFMs for feta[0-9]+.mf - - using strings for abs loudness. - - -pl 27.jcn2 - - grand renaming: Duration vs Moment / Rational - -pl 27.uu1 - - extra beam warning - -pl 27.jcn1 - - complete redo of chord and chord name code - - small fixes - -************* -pl 27 (feb 3) - -pl 26.uu1 - - make TFMs too. - - bf: dynamics. (Don't hang on spanner!) - - read TFM before AFM. - - fix din-MF stuff (UGH) - -pl 26.jcn4 - - Chord: handle all chord stuff; lots of chord fixes - - bf: Chord-name-engraver: find tonic - - bf: my-lily-parser: get_chord - - -pl 26.jcn3 - - bf's: spring spacer end of measure - - bf: tie/slur rods (dankje, lieverd) - - bf's: intl/ compile, install, uninstall - -pl 26.jcn2 - - enforce {slur,tie}_x_minimum (urg, paper vars?) - - tie listens to tieydirection/ydirection - - bf: tie placement - -pl 26.jcn1 - - tutorial fixes - - bf: OrchestralScore should do hara-kiri.. - - bf: makeinfo: - - info in rpm again - - update to yodl pl10, yodl2texinfo fixes - - use --force, .info should always be generated - -********* -pl 26 (feb 1, 99) - -25.jcn2 - - bf: staffside axis init - - bf: staffmargin stuff. - - Timesig C fixes - - -pl 25.uu2 - - junked Scarlatti clef - - fixed clef^8 - - Interpretation_context_handle is interface to interpretation context - - Staff_switching_translator: automatic staff switching for Piano staffs. - -pl25.jcn1 - - volta-spanner: junked dot_p_; not so handy after all: kerning?? - - feta-nummer: added : ,-. - - volta/tuplet thickness - - bf: scs-paper - - bf: ".|", and bar-thicknesses - -pl 25.uu1 - - bf: default duration is 4 - -********** -pl 25 - -pl 23.ms2 - - property noteheadStyle - - first attempt to make harmonics : see input/test/harmonics.fly - -pl 23.ms1 - - sinfonia.ly: several fixes - - dynamics - * increased range pppppp to ffffff - * added sp, spp, sff, rfz - * example see input/test/tchaikovsky.ly - * updated dynamics in refman - - -pl 24.jcn2 - - website fixes - - bf's: chords: - * reverted c1*2, collides with \times {} - * should use: c\breve, c\longa for long chords - * addition: c-9, subtraction: c^5 - * multiple -add, ^sub: c-7+.9-^3.5 - - bf: lyric chord - - bf: lookup text height - - bf's: autobeamer - - pl 24.jcn1 - - bf: rest collisions - - separate tfm-reader - - bf: :|: should not have thin lines - - -pl 24.mb1 - - bf: Correct units now used in the .afm files. - -****** - -pl 24, Hacking Apart Together (Jan 25) - -pl 23.jcn9 - - bf's: preludes-* (found a \meter and \transpose c`` there!) - - bf: ly2dvi: don't barf on 'linewidth = -1.;' - - bf: lily-version - -pl 23.jbr1 - - scripts/ly2dvi.py: Windows 95 shell does not support redivrection - of stderr. We now distribute ash and use it when needed. - - stepmake/bin/package-zip32.sh: distribute ash, and guild ice-9/ - directory. We build and distribute manpages in html format instead - of text format. - - Documentation/ntweb: Updated doco and now distributing as a self - extracted binary with install script. - -pl 23.hwn4 - - bugfixes - - changed All_font_metrics to do TFM as well. - - changed init/ to ly/ - -pl 23.jcn8 - - tfm reader; revamped code from fontutils-0.6 - -pl 23.hwn3 - - {Bar numbers|staff margin stuff|marks} fixed using -Bar_script_engraver as base class - - bf: PS points != Lily \pt - - junked Bar_column_engraver - - junked Text_item and some old files. - - -pl 23.jcn7 - - bf: piano-brace size (veels te simpel: kruis vingers tegen reject) - - crude autobeam stuff in mi2mu - - brevis, longa chords: c1*2,*4 - - mutopia/E.Satie/petite-ouverture-a-danser.ly - - prop: voltaVisibility - - more cello-suite-ii fixes: - * nice repeats - * removed all beams ifo auto-beamer - - bf's: autobeam - - junked dur2real; beamAutoEndx now as rational string: "1/2" - -pl 23.hwn2 - - _8 clef - - junked #args symtable def. - - junked Text_item. - - moved Bar assembling into LilyPond - - junked symtables reads - - Lookup cleanups - - junked Symtable from init/table* - -pl 23.hwn1 - - revamped Scarlatti K3-L378 - - some more doco - - use interning/SCM for Scopes - - hanging on now works for breakables too. - -pl 23.jcn6 - - chord fixes; notemode chord syntax changed: @c@ @c-7@ - - fixed cello-suite ii - - bf's: auto-beamer; but nasty bug remains: input/bug/auto-beam.ly - - bf: extender - - (bit ugly) fix for lyric-chords - - fixed repeats (dankjewel lieverd) - * input/twinkle.ly - * input/star*.ly - -pl 23.jcn3 - - succussfully removed []s from wtk1-fugue2.ly - - bf + smarter autobeamer - -pl 23.jcn2 - - mi2mu: d-minor: des->cis, g-minor ges->fis - -pl 23.mb1 - - bf: Position and possible SIGSEGV in Mark_engraver - - Added padding support in G_staff_side_item - - bf: Correct direction of textual scripts. - - bf, lookup.cc: Fewer warnings about missing text styles. - Same units used in all .afm files. - -pl 22.jcn5 - - auto-beaming v0: input/test/auto-beam.ly - - - -*********** - -pl 22.jcn4 - - bf's: repeat-engraver; \bar "|:", ":|" now deprecated for repeats - - bf: :|, |: - - property barAlways changed to boolean (0/1) - - added boolean property: barAuto - -pl 22.jcn3 - - bf: mmrest - -pl 22.jcn2 - - updated mi2mu - - bf: multi-measure-rest (input/test/m.ly) - - half fix for staff-margin-engraver - -pl 22.jcn1 - - bf's: cross-staff slur - - bf: gnossienne-4 -pl 22.tca1 - - buxfix, \mudela{ \times 2/3{ ...} } works now - -****** - -pl 22 - - fixed "already have a Beam" error - -pl 21.jcn2 - - gnossienne: hmm, how to - * undisplay bars - * don't put 'grace notes' in beam - * put separator between "] \translator Staff=x" - -pl 21.jcn1 - - gnossienne-4.ly (start of) - -pl 20.jcn2 - - mutopia fixes; see preludes-1.ly for cross-staff beams and slurs - - bf: broken interstaff slur - - sm66: check for gmake - -******* -pl 20.jcn1 - - interstaff slurs v0: preludes-1.ly - - warnings for silly interbeam settings - -pl 20.hwn1 - - inclusion of WIP article about LilyPond. - - L.Mozart sinfonfia - - bf: [c8 [c8 c8] - -******** -pl 20 - -pl 19.jcn5 - - interstaff beams v0: see beam-interstaff.ly and wtk1-fugue2.ly - -pl 19.jcn4 - - new stem/beam parameters - - bf: forced stem shorten - -pl 19.jcn3 - - dehairification of beam code; cleanup and bugfixes - * stemlength - * forced stem shorten - * slope calculation - * damping and correction - * catch for silly beams: input/test/beam-suspect.ly - -pl 19.jcn2 - - multi-measure-rest is now spanner SkipBars=0 is broken - -pl 19.jcn1 - - hmm, almost centered whole-bar rests -- NOT - -******** -pl 18.jcn5 - - bf: beamtrend - - bf: vv-duet - -pl 18.mb1 - - \mark now works, using G_staff_side_item. - - Improved layout of multi-bar rests, including a new - font symbol. - -pl 18.jcn4 - - beam length adjustments - - ugly beamtrend fix: input/test/beam-trend.ly - -pl 18.jcn3 - - bf: (beamed) forced stem shorten - - bf: broken slurs and ties; minimal slur/tie length setting ignored - - bf: separators on cygwin - -pl 18.jcn2 - - bf: stem-length algorithm - - bf: beam direction algorithm - - bf's: wtk1-fugue2.ly - -pl 18.jcn1 - - stepmake update - - small fixes: spacing.ly, wtk1-fugue2-ly, violino-viola duet. - -******* -pl 18 (jan 4 '99) - -pl 17.jbr2 - - Documentation/README-W32: Brought my stuff up to date - - Documentation/ntweb: updated for realease - - stepmake/bin/package-zip32.sh: cygwin-b20 changes - - scripts/ly2dvi.py: LILYPONDPREFIX fixes - -pl 17.jbr1 - - scripts/ly2dvi.py root is now the shared directory path not the - root of the lily installation. Environment variable LILYPONDPREFIX - is also the path to shared directory. - - lily/main.cc WINNT conditional added to avoid a casting of - main_prog - -pl 17.hwn1 - - bfs wtk1-fugue1 - - spacing tweak: very widely and tightly spaced lines look -better. - - allow Beam settings to be overriden: property - stemLeftBeamCount, stemRightBeamCount - - junked Assoc, Assoc_iter - - junked Graphical_element::{width,height} - - junked Plet_swallow_engraver, Plet_engraver - - Command_tie_engraver -> Tie_engraver, Command_beam_engraver -> Beam_engraver - - naming brew_molecule_p / do_brew_molecule -> output_processing, do_brew_molecule_p - - experimental Text_item, Staff_side - - junked old Beam_engraver and old Tie_engraver. - - AFM administration cleanup. - - cache brewed molecules. Speed up ? - - rehacked Graphical_element, introduced Dimension_cache - -******** - -pl 17 -pl 16.jcn2 - - fix: TEMPO 4., well urg, "TEMPO 4 ." - - beginning of violino/violoncello (viola) duet - -pl 16.jcn1 - - resurrected po-stuff - -********* -pl 16 - -pl 15.uu1 - - dynamic fix. - - junked abbrev stuff from parser. - -pl15.tca1 - - fixed verbatim option behaviour for mudela-book. - - added mudela-book option intertext="some text" - - mudela-book now understand latex \begin{verbatim} - -pl 15.jcn1 - - chord inversion: - * enter C/E - * display chord names according to boolean property - \property Score.chordInversion; - -********* -pl 15 - -pl 14.hwn1 - - new beam syntax: { [ ] }, changed in lilypond, -parser, lilypond (mudela 1.0.14), manual - - new tie syntax: { ~ } changed in manual, -parser, lilypond (Mudela 1.0.13) - -pl 14.jcn1 - - bf: get_chord C-m5- - - typos: chord-name - -pl 14.tca2 - - move option proccing out of main - -********** - -pl 14 - -pl 13.hwn1 - - tutorial fixes. - - junked find-quarts - - junked various plet goryness. - - preps for ~ syntax - - bib fixes - -pl 12.jcn3 - - bf's: standchen - - added repeat, chord stuff to website - - bf: dashed slur - - hacks for barlines, dynamics - -pl 12.jcn2 - - bf: package-diff - - new chord syntax, again: TONIC [DURATION] ['-' MODIFIERS/ADDITIONS] - - shorthand prefix for note-mode: '@', no shorthand for notes in chord - mode... - -pl 11.jcn6 - - bf: ly2dvi: better guess LILYPONDPREFIX: ../share/lilypond - - chord-table; urg bugs: - * note-collisions - * accidental-placement - - bf: cis m (\textsharpm, urg) - -pl 11.jcn5 - - bib entry, twinkle-pop - - bf's: chords - -pl 11.jcn4 - -********** -pl 13 - - mutopia stuff (thanks, Peter) - - bugfix : \maininput - -********* - - -pl 12 -pl 11.jcn3 - - bf: missing triads - - @c @c min (* is taken, <<, <> don't work) - - chord-modifiers (urg, "sus" should also subtract 2...) - -pl 11.uu3 - - --safe: security paranoia: disallow untrusted \include, -disallow untrusted TeX code, disallow named output - -pl 11.jcn2 - - duration with chords + change: @4 c @c7 - -pl 11.jcn1 - - minor chord syntax change: *c6 iso @c6; - -********** - -pl 11 - -pl9.tca1 - - included that missing init/mudela-book-defs.py. Added - one line to init/GNUMakefile to make .py-files be included. - - fragment and nonfragment options to override autodetection - -pl 10.jcn1 - - input/test/chords.ly - - \type ChordNames and chord-name-engraver.* - - chords mode: \chords { @c; @d7; } - -pl 10.uu1 - - scm/ directory. install .scm stuff too. - - tuplet bug fixed. - -********** -pl 10 - -pl 9.jcn3 - - property: unfoldRepeats; unfolding still broken - - volta spanner y-collision - - bf: volta number,dot placement - - bf's: init/table16,20 - - small additions to init/lily.scm to enable some testing - - junked extra repeat braces - - -pl 9.uu2 - - bib stuff - - removed \output from parser/lexer - -pl 9.jcn2 - - bf/redo: slur.cc, encompass-info: setting of encompass array. - - switched tuplet-engaver off (core dumps) - -pl 9.jcn1 - - bf (urg): no |: at start of piece - - bf?: text defs without width - - alignment absolute dynamics - - mutopia/opus-130.ly (excerpt, triggered by GUIDO) - - bf: crescendo symbol - - -pl 9.uu1 - - added faq entry - - copertina (thanks Maurizio) - -***************** -pl 9 - - fixed \relative - -pl8.tca1 - - changes to mudela-book. Junked fragment and floating options, - added eps option. Options should not stay as long that you get - comfortable with them. ;) - - Also possible to define your own commands with - a syntax like \mudela{c d e} - - updated mudela-book-doc.doc - -pl 8.jcn3 - - website: gnuisation of footers - -pl 8.jcn2 - - input/test/vertical-text.ly: urg ydim of text chords - - bf: one set of |: :| volta per staff - - bf: init/table* braces + more braces - - try at score-volta-bracket - -pl 8.jcn1 - - bf: lyric-engraver: handle multiple requests (don't overwrite) - - bf: guile-config - - music-list-iterator - -pl 8.hwn3 - - coriolan corno 1 - -pl 8.hwn2 - - more output revamping. - -pl 8.hwn1 - - Scheme output stuff - - tutorial fixes. - -***************** -pl 8 - -pl7.jcn3 - - bf's: spanner/volta - - volta-support: via Note, Bar, and Paper-column to Bar (item) - -pl7.jcn2 - - note repeats - -pl7.jcn1 - - configure/guile fixes (still no check for 1.2/1.3) - -pl7.hwn1 - - tutorial fixes - - tuplets over beams. - -***************** -pl 7 - -pl6.jcn5 - - repeatbars, volta-spanner work, alternative iteration still broken - - volta symbol - -pl5.szmulewicz2 - - more GUILE stuff. - - tutorial doco updates - -pl6.jcn4 - - volta-spanner - - repeat-engraver - - repeat/alternative music layout (hehe) - -pl6.uu1 - - Doco of music iterators. - -******** -pl 6 - -pl5.szmulewicz1 - - rtti stuff - - bf's: lily.scm - -pl5.mb1 - - bf: array.hh, don't make copy if resized to the same size - - bf: feta.tex - -pl5.jcn4 - - scm additions: plet, hairpin - - website fixes - -pl5.jcn3 - - website fixes - -pl5.jcn2 - - extender-*, see input/test/extender.ly - - bf: half-beam length (urg) - - fixes: standchen, star - -pl5.jcn1 - - tex/lily-ps-defs.tex fixes - - lily.ps - -pl 5.hwn1 - - Tuplet_engraver - - lily.ps fix. - - junked MY_RTTI stuff, simpler VIRTUAL_COPY_CONS - -******** -1.1.5 - -pl4.jcn4 - - fixes; preludes, finger - -pl4.jcn3 - - bf: text staff vertical align; see input/test/vertical-text.ly - - urg, scaled cmr8 by factor 4/5 - - apart from end/begin of measure spacing urgs, stars-and-stripes.ly - is rather cool - -pl4.jcn2 - - read (cmrxx)afm for text char widths - - tfmtoafm.sh (quite urg) - - alphabet.ly - -pl 4.uu1 - - read .scm files. No need for GUILE_LOAD_PATH - - .ps hack. No need for lily.ps on the printer - - (&$^@M&@^$@^&$@ Damn TeX) - - - - bf: mudela-book -> \default_paper is obsolete. - -pl 3.ms1 - - thumb-upgrade - -pl4.jcn1 - - bf: dotted slur - - bf: text ssb - - bf: empty/unknown in ps - -pl 4.tca1 - - 40% speedup executing mudela-book on mudela-book-doc.doc - - change of lilypond's output filenames. Given multiple input - files, eg. 'm.ly y.ly', output names will now be 'm.tex y.tex' - not 'm.tex y-1.tex', but if m.ly containts two paper definitions - output will be 'm.tex m-1.tex y.tex' - -******* -1.1.4 - -pl 3.tca1 - - accordion symbols in mf/feta-accordion.mf and - init/accordion-defs.ly. - - small changes to mudela-book and Documentation/man/mudela-book.yo - - mudela-book example file in Documentation/tex/mudela-book-doc.doc - -pl 3.jcn5 - - bf: dashed-slur - - bf: LilyIdString - - more star fixes - - repeatbar fixes - -pl 3.jcn3 - - mup-to-ly.py: version 0.0 - - init/test/stars-and-stripes.ly (from star.mup) - - GrandStaffContext - -pl 3.hwn1 - - junked musical info from key-item - - tutorial fixes. - -pl 3.jcn2 - - bf: font switch - -****** -1.1.3 - -pl 2.jcn2 - -pl 2.uu1 - - ly2dvi.py -I fix - - obsoleted ly2dvi.sh - - removed Note_head_engraver - -pl 2.hwn1 - - scm cleanups, chop-decimal - - scarlatti clef. - -pl 2.jcn1 - - commented-out Level-2 PostScript in lily.ps (J. Buehler) - - moved tex/*.ps to ps/ - - merged lilyponddefs.ps, lily-ps-defs: tex/lily.ps - - be sure to set: - export GS_LIB=$HOME/usr/src/lilypond/ps - - added tex and empty ps-symbols - -pl 1.jcn4 - - more little website fixes - -******** - -pl 2 - -pl 1.mb1 - - Support for cautionary accidentals. , i.e. accidentals - within parantheses. Syntax: 'cis?'. Try input/test/accid.fly - Note that the font has changed. - - bf: No unnecessary warnings about time signatures - - Added optional second argument of \key. Set to \major or \minor - to get a major or minor key. Default: major. - - bf: Compilation error in midi-walker.cc - -pl 1.jcn2 - - fixes for htmldoc, website - - silly jcn1 fixes - - junked MODULE stuff from lily/GNUmakefile (again) - -pl 0.jcn4 - -set: - export GUILE_LOAD_PATH=$HOME/usr/src/lilypond/init - - dstream: Score_element, Column_info - - -fscm debug hack: lilypond -fscm a; guile a.scm > a.tex; tex a - - init/lily.scm - - -******** - -pl 1 -pl 0.uu5 - - fixed MIDI output. - -pl 0.jcn3 - - dropped stepmake/aclocal.m4 - - removed silly -lguile (BLA_LIBS, EXTRA_LIBS ??) - - added debugging output format: -fscm - - ly2dvi.py -I fix - - Documentation/tex/feta.tex - - doco fixes: PATCHES.yo, yodl-1.31.7 - -pl 0.uu4 - - Protected_scm to fixup GUILE gc - -pl 0.uu3 - - more RTTI cleaning. - -pl 0.uu2 - - undone type_info::before hack. (Ugh. RTFM). - -pl 0.uu1 - - more RTTI stuff: is_type_b -> type_info::before - -pl 0.jcn1 -pl 17.jcn7 - - added: set*text, timesig, beam - - guile-1.3 is fine; my egcs-1.0.2's -O2 is broken -pl 17.jbr1 - - stepmake/stepmake/bin/package-zip32.sh: Updated configure statement - and modified win32 specific distribution file names to match - pl 16.hwn1 changes. - - scripts/ly2dvi.py: Modified search paths to match the new lilypond - installation tree. - - scripts/convert-mudela.py: Remove the an existing backup file - before renaming original. This is a WINDOWS32 Python requirement. - - Documentation/ntweb/index.html: Updated documentation to match - new lilypond installation tree. - - lily/main.cc: Fixed LILYPONDPREFIX search paths. - - - -********** - -1.1.0 - -pl 18.exp - - use C++ RTTI iso access_Xxx () - - junk Graphical_lisp_element - - catalan.ly - -pl 17.tca1 - - rewrite of mudela-book - -pl 17.ms1 - - added \thumb (used very often in cello music) in - mf/feta-schrift.mf. - - added /input/test/thumb.ly (example) - -pl 16.jcn1 - - dashed-slur through scheme - -pl 15.jcn4 - - more scheme hacks - -pl 15.jcn3 - - try at scheme in Atom - -pl 15.jcn2 # rest of - - graphical-lisp-element + silly half hook-up with autuplet - -pl 17.jcn5 - - stepmake pl59: templatised install (see mf/) - - reasonably ps/tex success (with guile-1.2): - * input/kortjakje.ly - - lots more scm stuff - - bf: mf/mfplain.ini - - stepmake pl58: guile 1.3 configure fix - - working font-switch: - guile-1.2 and -lreadline -ldl from 1.3 configure... - -pl 17.jcn4 - - installable stepmake pl57 - - urg, FIXME guile-1.3: - * don't install shared libs! configure can't handle - * manually add: EXTRA_LIBS = -lguile -lreadline -ldl - * lily's truely broken, downgrade do 1.2 - -pl 17.jcn3 - - lots of stuff still broken, notably font selection, just try - a()b - or so - - tex output support - - all output through scheme - - option: f, output-format=X - - geile placebox - - mf/mfplain.ini - -pl 17.jcn2 - - all paper output through scheme, about half way - -pl 17.jcn1 - - 16.jcn1 - diff --git a/TODO b/TODO index f2df107e6c..dc34df7475 100644 --- a/TODO +++ b/TODO @@ -11,6 +11,8 @@ Grep -i for TODO, FIXME and ugh/ugr/urg. .* TODO . * use Rhythmic_head::position_i () for all Staff_referenced . * .po -> .pot. +. * why need to run -C mf twice? +. * junk BLURB files. . * setting indent to 0 with \shape fails . * ly2dvi : don't repeat opus if same. . * breaks before mmrests are favored. @@ -20,11 +22,9 @@ Grep -i for TODO, FIXME and ugh/ugr/urg. . * rerun profile . * fix or replace feta-accordion.mf . * fix configure with CFLAGS or LDFLAGS, try: -+ CFLAGS=-g LDFLAGS='-Wl,--warn-common' ./configure -+ configure will use them while testing the compiler, but they don't -+ appear in config.make - -. * Break_req handling is silly (break_forbid () + \break fucks up.) + CFLAGS=-g LDFLAGS='-Wl,--warn-common' ./configure +configure will use them while testing the compiler, but they don't +appear in config.make . * script engraver . * Chords: . * Bass/inversion pitch when not part of Chord @@ -490,19 +490,7 @@ hesitate to ask. . * SGML input . * Documentation -. * remove links to non-free SW. . * internal documentation -. * a general paper. -. * \properties -. * left/rightbeamcount -. * various other new properties. -. * introduction? -. * info? -. * LaTeX? -. * more manpages? -. * Doc (C) stuff of sheet music -. * a better format? SGML? TeX? Info? -. * a better tutorial . * more spanners (smallish) . * Glissando @@ -515,7 +503,6 @@ hesitate to ask. . * lines: . * Ledger lines, should be separate item: Ledger_lines -. * set different line sizes / thicknesses . * beam stem showthrough, inter beam sizes (french vs german style) . * Collisions @@ -524,7 +511,7 @@ hesitate to ask. . * Keys: . * merge key{item} & localkey{item}? -. * spacing, national styles? +. * spacing . * Support for TAB . * redo Notehead to allow digits as heads @@ -533,7 +520,6 @@ hesitate to ask. . * should adjust stemlength for flag number. . * breaking: -. * caching breakpoints . * saving them . * specify number of lines @@ -543,10 +529,8 @@ hesitate to ask. . * \translator -> ? . * fix \partial . * \bla {} vs \bla ; -. * mix engraver hacking with music ? . * \once\property KEY = VAL . * input property -. * abstract grammar. . * Figure out semicolons. . * 4 ? . * Viola mode? @@ -564,8 +548,6 @@ hesitate to ask. .* SMALLISH PROJECTS -. * fix confusing naming in Engraver vs Engraver_group_engraver (context) - . * A range for context errors (eg. mark both { and }. ) . * lyric in staff (sharpsharp in staff, text below) diff --git a/VERSION b/VERSION index 273303e4f0..a29c25c1b1 100644 --- a/VERSION +++ b/VERSION @@ -1,8 +1,8 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=2 -PATCH_LEVEL=14 -MY_PATCH_LEVEL=jcn1 +PATCH_LEVEL=15 +MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/buildscripts/lilypond-login.sh b/buildscripts/lilypond-login.sh index d7e8e972d8..ca9d6c5c9f 100755 --- a/buildscripts/lilypond-login.sh +++ b/buildscripts/lilypond-login.sh @@ -1,10 +1,10 @@ #!/bin/csh # env. vars for the C-shell. - # set environment for LilyPond. To be installed in /etc/profile.d/ -setenv GS_LIB "@datadir@/ps" + setenv GS_FONTPATH "@datadir@/afm" + # bit silly. for ly2dvi, overrules compiled-in datadir... setenv LILYPONDPREFIX "@datadir@" @@ -19,10 +19,5 @@ if ($?TEXINPUTS) then else setenv TEXINPUTS "/usr/share/lilypond/tex::" endif -if ($?GUILE_LOAD_PATH) then - setenv GUILE_LOAD_PATH "/usr/share/lilypond/scm:${GUILE_LOAD_PATH}" -else - setenv GUILE_LOAD_PATH "/usr/share/lilypond/scm" -endif diff --git a/buildscripts/lilypond-profile.sh b/buildscripts/lilypond-profile.sh index 6aebf7b701..f2083862de 100755 --- a/buildscripts/lilypond-profile.sh +++ b/buildscripts/lilypond-profile.sh @@ -2,7 +2,6 @@ # set environment for LilyPond. To be installed in /etc/profile.d/ -GS_LIB="@datadir@/ps" GS_FONTPATH="@datadir@/afm:@datadir@/pfa" # bit silly. for ly2dvi, overrules compiled-in datadir... @@ -12,11 +11,8 @@ LILYPONDPREFIX="@datadir@" MFINPUTS="@datadir@/mf:"${MFINPUTS:=":"} TEXINPUTS="@datadir@/tex:@datadir@/ps:"${TEXINPUTS:=":"} -GUILE_LOAD_PATH="@datadir@/scm:$GUILE_LOAD_PATH" - -export GUILE_LOAD_PATH LILYINCLUDE LILYPONDPREFIX MFINPUTS TEXINPUTS GS_LIB GS_FONTPATH +export LILYINCLUDE LILYPONDPREFIX MFINPUTS TEXINPUTS GS_LIB GS_FONTPATH -# echo $LILYINCLUDE $MFINPUTS $TEXINPUTS $GS_LIB $GS_FONTPATH diff --git a/debian/GNUmakefile b/debian/GNUmakefile index 740dafc961..929f049b15 100644 --- a/debian/GNUmakefile +++ b/debian/GNUmakefile @@ -3,8 +3,6 @@ depth = .. NAME = debian -BLURBS = BLURB -AT_FILES = $(BLURBS) # at-dir = $(outdir)/ at-ext = diff --git a/debian/control b/debian/control index 07d913fd21..0b48d3e3e1 100644 --- a/debian/control +++ b/debian/control @@ -9,10 +9,10 @@ Architecture: any Depends: ${shlibs:Depends}, tetex-bin (>= 0.9.990310-1) Recommends: python-base (>= 1.5.2-4), tetex-base (>= 0.9.990311-1), tetex-extra (>= 0.9.990311-1) Conflicts: musixtex-fonts, tetex-base (<< 0.9) -Description: A program for printing sheet music. - LilyPond is a music typesetter. It produces beautiful sheet music - using a high level description file as input. LilyPond is part of - the GNU Project. +Description: A program for printing sheet music. LilyPond is a music typesetter. It produces beautiful sheet music +using a high level description file as input. LilyPond is part of +the GNU Project. + . URLs: http://www.cs.uu.nl/~hanwen/lilypond/ http://www.xs4all.nl/~jantien/lilypond/ diff --git a/debian/control.in b/debian/control.in index 47e33d963d..0b48d3e3e1 100644 --- a/debian/control.in +++ b/debian/control.in @@ -9,7 +9,10 @@ Architecture: any Depends: ${shlibs:Depends}, tetex-bin (>= 0.9.990310-1) Recommends: python-base (>= 1.5.2-4), tetex-base (>= 0.9.990311-1), tetex-extra (>= 0.9.990311-1) Conflicts: musixtex-fonts, tetex-base (<< 0.9) -Description: A program for printing sheet music.@BLURB@ +Description: A program for printing sheet music. LilyPond is a music typesetter. It produces beautiful sheet music +using a high level description file as input. LilyPond is part of +the GNU Project. + . URLs: http://www.cs.uu.nl/~hanwen/lilypond/ http://www.xs4all.nl/~jantien/lilypond/ diff --git a/debian/out/control b/debian/out/control index 07d913fd21..0b48d3e3e1 100644 --- a/debian/out/control +++ b/debian/out/control @@ -9,10 +9,10 @@ Architecture: any Depends: ${shlibs:Depends}, tetex-bin (>= 0.9.990310-1) Recommends: python-base (>= 1.5.2-4), tetex-base (>= 0.9.990311-1), tetex-extra (>= 0.9.990311-1) Conflicts: musixtex-fonts, tetex-base (<< 0.9) -Description: A program for printing sheet music. - LilyPond is a music typesetter. It produces beautiful sheet music - using a high level description file as input. LilyPond is part of - the GNU Project. +Description: A program for printing sheet music. LilyPond is a music typesetter. It produces beautiful sheet music +using a high level description file as input. LilyPond is part of +the GNU Project. + . URLs: http://www.cs.uu.nl/~hanwen/lilypond/ http://www.xs4all.nl/~jantien/lilypond/ diff --git a/flower/include/parray.hh b/flower/include/parray.hh index 8a2efcb6fd..a9baeab836 100644 --- a/flower/include/parray.hh +++ b/flower/include/parray.hh @@ -129,6 +129,25 @@ public: Array::empty; Array::reverse; Array::tighten_maxsize; + + T *& boundary (int d, int i) + { + assert (d); + if (d == 1) + return top (i); + else + return elem_ref (i); + } + T * boundary (int d, int i)const + { + assert (d); + if (d == 1) + return top (i); + else + return elem_ref (i); + } + + T ** access_array () const { return (T**) Array::access_array(); diff --git a/input/bugs/core.ly b/input/bugs/core.ly index 5564617f77..2ad2caf191 100644 --- a/input/bugs/core.ly +++ b/input/bugs/core.ly @@ -15,9 +15,6 @@ global = \notes { \paper { \translator{ \StaffContext - - % other core dump when this is removed? - \remove "Time_signature_engraver"; } } } diff --git a/input/star-spangled-banner.ly b/input/star-spangled-banner.ly index e4bbe8d76e..d16dadc5e6 100644 --- a/input/star-spangled-banner.ly +++ b/input/star-spangled-banner.ly @@ -164,10 +164,13 @@ handLyrics = \notes \context GrandStaff < \GrandStaffContext \accepts "Lyrics"; } -% castingalgorithm = \Wordwrap; + \translator { + \LyricsContext + \consists "Bar_engraver"; + } } \midi {} } -\version "1.2.0"; +\version "1.2.14"; diff --git a/input/test/break.ly b/input/test/break.ly new file mode 100644 index 0000000000..ce65bb178b --- /dev/null +++ b/input/test/break.ly @@ -0,0 +1,12 @@ + + + +\score{ + \notes\context Voice{ + \emptyText + c1 c1^"no break after 2nd note" \nobreak c1 c1 + + c1^"break after this" \break c1 c1 + } + \paper { linewidth = 4.0\cm;} +} diff --git a/input/test/lyrics-bar.ly b/input/test/lyrics-bar.ly new file mode 100644 index 0000000000..0e714c34f6 --- /dev/null +++ b/input/test/lyrics-bar.ly @@ -0,0 +1,30 @@ + +\score { + + \context StaffGroup < + \notes \context Staff { b1 b1 \bar "|."; } + \lyrics\context Lyrics < + \context BarLV { thisContextHasBarEngraver1 added } + \context LyricVoice { this4 one has no barEngraverAddedToContext1 } + > + \notes \context Staff = SB { b1 b1 } + + > + + \paper { + linewidth = -1.0\cm; + \translator { + \LyricsContext + \consists "Bar_engraver"; + \accepts "BarLV"; + } + \translator { + \LyricsVoiceContext + \consists "Bar_engraver"; + \name "BarLV"; + } + \translator { + \LyricsVoiceContext + } + } +} diff --git a/input/test/repeat-semifold.ly b/input/test/repeat-semifold.ly deleted file mode 100644 index d05959555b..0000000000 --- a/input/test/repeat-semifold.ly +++ /dev/null @@ -1,12 +0,0 @@ - -% no alts. -\score { \notes - \relative c'' { -\repeat volta 3 { c^"3$\\times$ 0alt" d } -% less alts than body -\repeat volta 4 { c^"4$\\times$ 2alt" d } \alternative { e f } - -% more alts than body -\repeat volta 2 { c^"2$\\times$ 3alt" d } \alternative { e f g } -}} - diff --git a/input/test/repeat-volta.ly b/input/test/repeat-volta.ly new file mode 100644 index 0000000000..46cea92205 --- /dev/null +++ b/input/test/repeat-volta.ly @@ -0,0 +1,17 @@ + +% no alts. +\score { \notes + \relative c'' { +\repeat volta 3 { c^"3$\\times$ 0alt" d } +% less alts than body +\repeat volta 4 { c^"4$\\times$ 2alt" d } \alternative { e f } + +% more alts than body +\repeat volta 2 { c^"2$\\times$ 3alt" d } \alternative { e f g } +} + + \midi{} + \paper{} + +} + diff --git a/lily/GNUmakefile b/lily/GNUmakefile index 638a618ace..29df520062 100644 --- a/lily/GNUmakefile +++ b/lily/GNUmakefile @@ -20,7 +20,6 @@ $(outdir)/my-lily-parser.o: $(outdir)/parser.hh $(outdir)/my-lily-lexer.o: $(outdir)/parser.hh $(outdir)/lexer.o: $(outdir)/parser.hh $(outdir)/lily-version.o: $(outdir)/version.hh -$(outdir)/main.o: $(outdir)/BLURB.hh diff --git a/lily/auto-beam-engraver.cc b/lily/auto-beam-engraver.cc index 28fc85fa65..69b9a4f6ed 100644 --- a/lily/auto-beam-engraver.cc +++ b/lily/auto-beam-engraver.cc @@ -194,7 +194,6 @@ Auto_beam_engraver::create_beam_p () */ if ((*stem_l_arr_p_)[i]->beam_l_) { - delete beam_p; return 0; } beam_p->add_stem ((*stem_l_arr_p_)[i]); diff --git a/lily/bar-engraver.cc b/lily/bar-engraver.cc index 84ada321e8..2aa4904054 100644 --- a/lily/bar-engraver.cc +++ b/lily/bar-engraver.cc @@ -6,13 +6,14 @@ (c) 1997, 1998, 1999 Han-Wen Nienhuys Jan Nieuwenhuizen */ + #include "score-engraver.hh" #include "bar-engraver.hh" #include "staff-bar.hh" #include "musical-request.hh" #include "multi-measure-rest.hh" #include "command-request.hh" -#include "time-description.hh" +#include "timing-engraver.hh" #include "engraver-group-engraver.hh" #include "warn.hh" @@ -22,20 +23,6 @@ Bar_engraver::Bar_engraver() do_post_move_processing(); } -bool -Bar_engraver::do_try_music (Music*r_l) -{ - if (Bar_req * b= dynamic_cast (r_l)) - { - if (bar_req_l_ && bar_req_l_->equal_b (b)) // huh? - return false; - - bar_req_l_ = b; - return true; - } - - return false; -} @@ -68,7 +55,7 @@ Bar_engraver::create_bar () bar_p_->set_elt_property (bar_size_scm_sym, gh_double2scm (Real(prop))); } - announce_element (Score_element_info (bar_p_, bar_req_l_)); + announce_element (Score_element_info (bar_p_, 0)); } } @@ -103,8 +90,6 @@ Bar_engraver::request_bar (String requested_type) void Bar_engraver::do_creation_processing () { - create_bar (); - bar_p_->type_str_ = ""; } void @@ -120,26 +105,15 @@ Bar_engraver::do_removal_processing () void Bar_engraver::do_process_requests() { - Time_description const *time = get_staff_info().time_C_; - if (bar_req_l_) - { - create_bar (); - bar_p_->type_str_ = bar_req_l_->type_str_; - } - else if (!now_mom ()) - { - create_bar (); - bar_p_->type_str_ = "|"; - } - else + Translator * t = daddy_grav_l ()->get_simple_translator ("Timing_engraver"); + + Timing_engraver * te = dynamic_cast(t); + String which = (te) ? te->which_bar () : ""; + + if (which.length_i ()) { - Scalar nonauto = get_property ("barNonAuto", 0); - if (!nonauto.to_bool ()) - { - Scalar always = get_property ("barAlways", 0); - if ((time && !time->whole_in_measure_) || always.to_bool ()) - create_bar (); - } + create_bar(); + bar_p_->type_str_ = which; } if (!bar_p_) @@ -169,14 +143,6 @@ Bar_engraver::do_pre_move_processing() } } -void -Bar_engraver::do_post_move_processing() -{ - bar_req_l_ = 0; -} - - - ADD_THIS_TRANSLATOR(Bar_engraver); diff --git a/lily/bar-req-collect-engraver.cc b/lily/bar-req-collect-engraver.cc new file mode 100644 index 0000000000..2eafaed254 --- /dev/null +++ b/lily/bar-req-collect-engraver.cc @@ -0,0 +1,11 @@ +/* + bar-req-collect-engraver.cc -- implement Bar_req_collect_engraver + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys + + */ + +#include "command-request.hh" + diff --git a/lily/bar.cc b/lily/bar.cc index 95ffc72519..f21d68fbac 100644 --- a/lily/bar.cc +++ b/lily/bar.cc @@ -76,7 +76,7 @@ Bar::do_pre_processing () break; } } - if (remove_elt_property (at_line_start_scm_sym)!= SCM_BOOL_F + if (remove_elt_property (at_line_start_scm_sym) != SCM_BOOL_F // UGR. && (break_status_dir () == RIGHT) && (type_str_ == "")) { type_str_ = "|"; diff --git a/lily/beam-engraver.cc b/lily/beam-engraver.cc index b34d329d94..5ba4ed9306 100644 --- a/lily/beam-engraver.cc +++ b/lily/beam-engraver.cc @@ -110,7 +110,7 @@ Beam_engraver::do_process_requests () prop = get_property ("autoInterstaffKneeGap", 0); if (prop.isnum_b ()) beam_p_->set_elt_property (auto_interstaff_knee_gap_scm_sym, gh_int2scm( prop)); - + prop = get_property ("beamquantisation", 0); if (prop.isnum_b ()) beam_p_->quantisation_ = (Beam::Quantisation)(int)prop; diff --git a/lily/beam.cc b/lily/beam.cc index 92a92050a2..83d83260ae 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -273,13 +273,12 @@ Beam::get_default_dir () const [Ross] states that the majority of the notes dictates the direction (and not the mean of "center distance") - But is that because it really looks better, or because he - wants to provide some real simple hands-on rules. + But is that because it really looks better, or because he wants + to provide some real simple hands-on rules? We have our doubts, so we simply provide all sensible alternatives. - If dir is not determined: up (see stem::get_default_dir ()) - */ + If dir is not determined: up (see stem::get_default_dir ()) */ Direction beam_dir; Direction neutral_dir = (Direction)(int)paper_l ()->get_var ("stem_default_neutral_direction"); @@ -338,7 +337,6 @@ void Beam::solve_slope () { assert (sinfo_.size () > 1); - DEBUG_OUT << "Beam::solve_slope: \n"; Least_squares l; for (int i=0; i < sinfo_.size (); i++) @@ -357,8 +355,8 @@ Beam::check_stemlengths_f (bool set_b) { Real interbeam_f = paper_l ()->interbeam_f (multiple_i_); - Real beam_f = paper_l ()->beam_thickness_f (); - Real staffline_f = paper_l ()->rule_thickness (); + Real beam_f = paper_l ()->get_realvar (beam_thickness_scm_sym);; + Real staffline_f = paper_l ()-> get_var ("stafflinethickness"); Real epsilon_f = staffline_f / 8; Real dy_f = 0.0; for (int i=0; i < sinfo_.size (); i++) @@ -524,8 +522,8 @@ Beam::quantise_dy () Real interline_f = stems_[0]->staff_line_leading_f (); Real internote_f = interline_f / 2; - Real staffline_f = paper_l ()->rule_thickness (); - Real beam_f = paper_l ()->beam_thickness_f (); + Real staffline_f = paper_l ()->get_var ("stafflinethickness"); + Real beam_f = paper_l ()->get_realvar (beam_thickness_scm_sym);; Real dx_f = stems_.top ()->hpos_f () - stems_[0]->hpos_f (); @@ -550,9 +548,6 @@ Beam::quantise_dy () slope_f_ = (quanty_f / dx_f) / internote_f * sign (slope_f_); } -static int test_pos = 0; - - /* Prevent interference from stafflines and beams. See Documentation/tex/fonts.doc @@ -566,7 +561,7 @@ Beam::quantise_left_y (bool extend_b) if extend_b then stems must *not* get shorter */ - if (quantisation_ <= NONE) + if (quantisation_ == NONE) return; /* @@ -582,8 +577,8 @@ Beam::quantise_left_y (bool extend_b) Real space = stems_[0]->staff_line_leading_f (); Real internote_f = space /2; - Real staffline_f = paper_l ()->rule_thickness (); - Real beam_f = paper_l ()->beam_thickness_f (); + Real staffline_f = paper_l ()->get_var ("stafflinethickness"); + Real beam_f = paper_l ()->get_realvar (beam_thickness_scm_sym);; /* [TODO] @@ -593,7 +588,6 @@ Beam::quantise_left_y (bool extend_b) Real straddle = 0; Real sit = beam_f / 2 - staffline_f / 2; - Real inter = space / 2; Real hang = space - beam_f / 2 + staffline_f / 2; /* @@ -604,7 +598,8 @@ Beam::quantise_left_y (bool extend_b) For simplicity, we'll assume dir = UP and correct if dir = DOWN afterwards. */ - + // isn't this asymmetric ? --hwn + // dim(left_y_) = internote Real dy_f = dir_ * left_y_ * internote_f; @@ -612,51 +607,26 @@ Beam::quantise_left_y (bool extend_b) Real beamdy_f = beamdx_f * slope_f_ * internote_f; Array allowed_position; - if (quantisation_ != TEST) + if (quantisation_ <= NORMAL) { - if (quantisation_ <= NORMAL) - { - if ((multiple_i_ <= 2) || (abs (beamdy_f) >= staffline_f / 2)) - allowed_position.push (straddle); - if ((multiple_i_ <= 1) || (abs (beamdy_f) >= staffline_f / 2)) - allowed_position.push (sit); - allowed_position.push (hang); - } - else - // TODO: check and fix TRADITIONAL - { - if ((multiple_i_ <= 2) || (abs (beamdy_f) >= staffline_f / 2)) - allowed_position.push (straddle); - if ((multiple_i_ <= 1) && (beamdy_f <= staffline_f / 2)) - allowed_position.push (sit); - if (beamdy_f >= -staffline_f / 2) - allowed_position.push (hang); - } + if ((multiple_i_ <= 2) || (abs (beamdy_f) >= staffline_f / 2)) + allowed_position.push (straddle); + if ((multiple_i_ <= 1) || (abs (beamdy_f) >= staffline_f / 2)) + allowed_position.push (sit); + allowed_position.push (hang); } else + // TODO: check and fix TRADITIONAL { - if (test_pos == 0) - { - allowed_position.push (hang); - cout << "hang" << hang << "\n"; - } - else if (test_pos==1) - { + if ((multiple_i_ <= 2) || (abs (beamdy_f) >= staffline_f / 2)) allowed_position.push (straddle); - cout << "straddle" << straddle << endl; - } - else if (test_pos==2) - { + if ((multiple_i_ <= 1) && (beamdy_f <= staffline_f / 2)) allowed_position.push (sit); - cout << "sit" << sit << endl; - } - else if (test_pos==3) - { - allowed_position.push (inter); - cout << "inter" << inter << endl; - } + if (beamdy_f >= -staffline_f / 2) + allowed_position.push (hang); } + Interval iv = quantise_iv (allowed_position, space, dy_f); Real quanty_f = dy_f - iv[SMALLER] <= iv[BIGGER] - dy_f ? iv[SMALLER] : iv[BIGGER]; @@ -670,14 +640,14 @@ Beam::quantise_left_y (bool extend_b) void Beam::set_stemlens () { - Real staffline_f = paper_l ()->rule_thickness (); + Real staffline_f = paper_l ()->get_var ("stafflinethickness"); // enge floots Real epsilon_f = staffline_f / 8; // je bent zelf eng --hwn. Real dy_f = check_stemlengths_f (false); - for (int i = 0; i < 2; i++) + for (int i = 0; i < 2; i++) // 2 ? { left_y_ += dy_f * dir_; quantise_left_y (dy_f); @@ -687,9 +657,6 @@ Beam::set_stemlens () break; } } - - test_pos++; - test_pos %= 4; } void @@ -730,6 +697,8 @@ Beam::do_add_processing () /* beams to go with one stem. + + clean me up. */ Molecule Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const @@ -738,16 +707,15 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const (prev && !(prev->hpos_f () < here->hpos_f ()))) programming_error ("Beams are not left-to-right"); - Real staffline_f = paper_l ()->rule_thickness (); + Real staffline_f = paper_l ()->get_var ("stafflinethickness"); Real interbeam_f = paper_l ()->interbeam_f (multiple_i_); Real internote_f = here->staff_line_leading_f ()/2; - Real beam_f = paper_l ()->beam_thickness_f (); + Real beam_f = paper_l ()->get_realvar (beam_thickness_scm_sym);; Real dy = interbeam_f; Real stemdx = staffline_f; Real sl = slope_f_* internote_f; - lookup_l ()->beam (sl, 20 PT, 1 PT); Molecule leftbeams; Molecule rightbeams; @@ -759,7 +727,7 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const else if (here->type_i ()== 1) nw_f = paper_l ()->get_var ("wholewidth"); else if (here->type_i () == 2) - nw_f = paper_l ()->note_width () * 0.8; + nw_f = paper_l ()->get_var ("notewidth") * 0.8; else nw_f = paper_l ()->get_var ("quartwidth"); diff --git a/lily/bezier.cc b/lily/bezier.cc index 7a7a1f6833..9acb9004e9 100644 --- a/lily/bezier.cc +++ b/lily/bezier.cc @@ -33,7 +33,7 @@ /* - UGH. Clean up debugging junk. + UGH. Remove debugging junk. */ @@ -232,7 +232,6 @@ Bezier_bow::calc_f (Real height) { transform (); calc_default (height); - calc_bezier (); Real dy = check_fit_f (); diff --git a/lily/break-algorithm.cc b/lily/break-algorithm.cc index fd5955fc38..40d7b84e97 100644 --- a/lily/break-algorithm.cc +++ b/lily/break-algorithm.cc @@ -31,7 +31,7 @@ Break_algorithm::find_break_indices () const if (all[i]->breakable_b ()) retval.push (i); - if (linelength <=0) + if (linewidth_f_ <=0) while (retval.size () >2) retval.del (1); @@ -49,7 +49,7 @@ Break_algorithm::find_breaks () const if (all[i]->breakable_b ()) retval.push (all[i]); - if (linelength <=0) + if (linewidth_f_ <=0) while (retval.size () >2) retval.del (1); @@ -86,31 +86,18 @@ Break_algorithm::generate_spacing_problem (Line_of_cols curline, Interval line) Break_algorithm::Break_algorithm () { pscore_l_ = 0; - linelength = 0; + linewidth_f_ = 0; } void Break_algorithm::set_pscore (Paper_score*s) { pscore_l_ = s; - linelength = s->paper_l_->linewidth_f (); + linewidth_f_ = s->paper_l_->get_var("linewidth"); do_set_pscore (); } -bool -Break_algorithm::feasible (Line_of_cols curline) const -{ - if (linelength <= 0) - return true; - for (int i=0; i < curline.size (); i++) - { - if (i && i < curline.size () -1 - && ((dynamic_cast(curline[i]))->break_penalty_i () >= Break_req::FORCE)) - return false; - } - return true; -} void Break_algorithm::problem_OK () const diff --git a/lily/break-align-item.cc b/lily/break-align-item.cc index a391411db9..32e573a68c 100644 --- a/lily/break-align-item.cc +++ b/lily/break-align-item.cc @@ -139,8 +139,6 @@ Break_align_item::do_pre_processing() } - - Break_align_item::Break_align_item () { stacking_dir_ = RIGHT; diff --git a/lily/collision.cc b/lily/collision.cc index c5424710cd..c8e97cc998 100644 --- a/lily/collision.cc +++ b/lily/collision.cc @@ -33,7 +33,7 @@ Collision::do_pre_processing() Array hand (forced_shift ()); Link_array done; - Real wid = paper_l ()->note_width (); + Real wid = paper_l ()->get_var ("collision_note_width"); for (int i=0; i < hand.size (); i++) { hand[i].e1_->translate_axis (hand[i].e2_ *wid, X_AXIS); diff --git a/lily/column-x-positions.cc b/lily/column-x-positions.cc index 91c616fcb0..eb4c983701 100644 --- a/lily/column-x-positions.cc +++ b/lily/column-x-positions.cc @@ -7,7 +7,6 @@ */ #include "column-x-positions.hh" -#include "simple-spacer.hh" // ugh #include "real.hh" #include "debug.hh" @@ -15,7 +14,6 @@ Column_x_positions::Column_x_positions() { energy_f_ = infinity_f; satisfies_constraints_b_ = false; - spacer_l_ =0; } Column_x_positions::~Column_x_positions() @@ -23,11 +21,6 @@ Column_x_positions::~Column_x_positions() } -void -Column_x_positions::add_paper_column (Paper_column*c) -{ - cols_.push (c); -} void Column_x_positions::print() const diff --git a/lily/command-request.cc b/lily/command-request.cc index ce13bab7fe..35f0cdac4c 100644 --- a/lily/command-request.cc +++ b/lily/command-request.cc @@ -157,7 +157,6 @@ Key_change_req::Key_change_req () Break_req::Break_req () { - penalty_i_ = 0; } Mark_req::Mark_req (String s) diff --git a/lily/crescendo.cc b/lily/crescendo.cc index 8257150872..01f2ba5a77 100644 --- a/lily/crescendo.cc +++ b/lily/crescendo.cc @@ -52,7 +52,7 @@ Crescendo::get_symbol () const bool continued = broken[Direction (-grow_dir_)]; - Real height = paper_l()->staffheight_f () / 6; + Real height = paper_l()->get_var ("crescendo_height"); Real thick = paper_l ()->get_var ("crescendo_thickness"); return Molecule (lookup_l ()->hairpin (w_dim, height, thick, grow_dir_ < 0, continued)); diff --git a/lily/cross-staff.cc b/lily/cross-staff.cc new file mode 100644 index 0000000000..47300e660d --- /dev/null +++ b/lily/cross-staff.cc @@ -0,0 +1,44 @@ +#include "cross-staff.hh" +#include "item.hh" +#include "align-element.hh" +#include "spanner.hh" +#include "warn.hh" + +Real +calc_interstaff_dist (Item const *item, Spanner const *span) +{ + Real interstaff = 0.0; + Graphical_element *common = item->common_refpoint (span, Y_AXIS); + Align_element * align = dynamic_cast (common); + if (align && align->axis() == Y_AXIS) + { + if (align->threshold_interval_[MIN] != + align->threshold_interval_[MAX]) + warning (_ ("minVerticalAlign != maxVerticalAlign: cross staff spanners may be broken")); + + interstaff = align->threshold_interval_[MIN]; + + Graphical_element const * span_refpoint = span; + while (span_refpoint->parent_l (Y_AXIS) != common) + span_refpoint = span_refpoint->parent_l (Y_AXIS); + + Graphical_element const * note_refpoint = item; + while (note_refpoint->parent_l (Y_AXIS) != common) + note_refpoint = note_refpoint->parent_l (Y_AXIS); + + int span_prio = + align->get_priority ((Score_element*) dynamic_cast (span_refpoint)); + int item_prio = + align->get_priority ((Score_element*) dynamic_cast (note_refpoint)); + + /* + our staff is lower -> interstaff *= -1 + */ + + if (span_prio < item_prio) + interstaff *= -1; + return interstaff; + } + else return 0.0; +} + diff --git a/lily/encompass-info.cc b/lily/encompass-info.cc deleted file mode 100644 index aebad06539..0000000000 --- a/lily/encompass-info.cc +++ /dev/null @@ -1,92 +0,0 @@ -/* - encompass-info.cc -- implement Encompass_info - - source file of the GNU LilyPond music typesetter - - (c) 1998--1999 Jan Nieuwenhuizen - -*/ -#include "dimension-cache.hh" -#include "proto.hh" -#include "stem.hh" -#include "note-column.hh" -#include "paper-def.hh" -#include "encompass-info.hh" -#include "slur.hh" -#include "staff-symbol.hh" -#include "note-head.hh" -#include "debug.hh" -#include "align-element.hh" - -Encompass_info::Encompass_info () -{ -} - -Encompass_info::Encompass_info (Note_column const* note_column, Direction dir, Slur const* slur_l) -{ - interstaff_f_ = 0; - - Stem* stem_l = note_column->stem_l_; - if (!stem_l) - { - warning (_ ("Slur over rest?")); - o_[X_AXIS] = note_column->hpos_f (); - o_[Y_AXIS] = note_column->extent (Y_AXIS)[dir]; - return; - } - - o_[X_AXIS] = stem_l->hpos_f (); - - /* - Simply set x to middle of notehead - */ - - o_[X_AXIS] -= 0.5 * stem_l->dir_ * note_column->extent (X_AXIS).length (); - - if ((stem_l->dir_ == dir) - && !stem_l->extent (Y_AXIS).empty_b ()) - { - o_[Y_AXIS] = stem_l->extent (Y_AXIS)[dir]; - } - else - { - o_[Y_AXIS] = note_column->extent (Y_AXIS)[dir]; - } - - /* - leave a gap: slur mustn't touch head/stem - */ - o_[Y_AXIS] += dir * slur_l->paper_l ()->get_var ("slur_y_free"); - - Graphical_element *common = stem_l->common_refpoint (slur_l, Y_AXIS); - Align_element * align = dynamic_cast (common); - if (align && align->axis() == Y_AXIS) - { - if (align->threshold_interval_[MIN] != - align->threshold_interval_[MAX]) - warning (_ ("minVerticalAlign != maxVerticalAlign: interstaff beams/slurs may be broken")); - - interstaff_f_ = align->threshold_interval_[MIN]; - - Graphical_element const * slur_refpoint = slur_l; - while (slur_refpoint->parent_l (Y_AXIS) != common) - slur_refpoint = slur_refpoint->parent_l (Y_AXIS); - - Graphical_element const * note_refpoint = note_column; - while (note_refpoint->parent_l (Y_AXIS) != common) - note_refpoint = note_refpoint->parent_l (Y_AXIS); - - int slur_prio = - align->get_priority ((Score_element*) dynamic_cast (slur_refpoint)); - int stem_prio = - align->get_priority ((Score_element*) dynamic_cast (note_refpoint)); - - /* - our staff is lower -> interstaff_f_ *= -1 - */ - - if (slur_prio < stem_prio) - interstaff_f_ *= -1; - o_[Y_AXIS] += interstaff_f_; - } -} diff --git a/lily/engraver.cc b/lily/engraver.cc index f8ed5e5d6a..6121e82eb1 100644 --- a/lily/engraver.cc +++ b/lily/engraver.cc @@ -12,6 +12,7 @@ #include "engraver-group-engraver.hh" #include "debug.hh" #include "paper-def.hh" +#include "score-element.hh" void Engraver::fill_staff_info (Staff_info&) diff --git a/lily/extender-spanner.cc b/lily/extender-spanner.cc index dc7f4c22aa..2cedcea834 100644 --- a/lily/extender-spanner.cc +++ b/lily/extender-spanner.cc @@ -61,7 +61,7 @@ void Extender_spanner::do_post_processing () { // UGH - Real nw_f = paper_l ()->note_width () * 0.8; + Real gap = paper_l ()->get_realvar (interline_scm_sym); Direction d = LEFT; do @@ -71,7 +71,7 @@ Extender_spanner::do_post_processing () if (d == LEFT) dx_f_drul_[d] += t->extent (X_AXIS).length (); else - dx_f_drul_[d] -= d * nw_f / 2; + dx_f_drul_[d] -= d * gap / 2; } while (flip(&d) != LEFT); } diff --git a/lily/gourlay-breaking.cc b/lily/gourlay-breaking.cc index 533092aeee..63a6adc624 100644 --- a/lily/gourlay-breaking.cc +++ b/lily/gourlay-breaking.cc @@ -72,29 +72,17 @@ Gourlay_breaking::do_solve () const */ int minimal_start_idx = -1; Column_x_positions minimal_sol; + Column_x_positions backup_sol; + Real minimal_demerits = infinity_f; for (int start_idx = break_idx; start_idx--;) { -#if 0 - if (break_idx - start_idx > max_measures_i_) - break; -#endif - - if (optimal_paths[start_idx].prev_break_i_ < 0 - && optimal_paths[start_idx].line_config_.energy_f_) - continue; - - - Line_of_cols line = all.slice (breaks[start_idx], breaks[break_idx]+1); line[0] = dynamic_cast(line[0]->find_broken_piece (RIGHT)); line.top () = dynamic_cast(line.top ()->find_broken_piece (LEFT)); - if (!feasible (line)) - break; - Column_x_positions cp; cp.cols_ = line; @@ -103,13 +91,19 @@ Gourlay_breaking::do_solve () const Simple_spacer * sp = generate_spacing_problem (line, line_dims); sp->solve (&cp); delete sp; - + + if (start_idx == break_idx - 1) + backup_sol = cp; // in case everything fucks up if (!cp.satisfies_constraints_b_) break; - Real this_demerits - = combine_demerits (optimal_paths[start_idx].line_config_, cp) - + optimal_paths[start_idx].demerits_f_; + + Real this_demerits; + if (optimal_paths[start_idx].demerits_f_ >= infinity_f) + this_demerits = infinity_f; + else + this_demerits = combine_demerits (optimal_paths[start_idx].line_config_, cp) + + optimal_paths[start_idx].demerits_f_; if (this_demerits < minimal_demerits) { @@ -119,19 +113,20 @@ Gourlay_breaking::do_solve () const } } + int prev =break_idx - 1; if (minimal_start_idx < 0) { - optimal_paths[break_idx].prev_break_i_ = -1; - optimal_paths[break_idx].line_config_.energy_f_ = infinity_f; + optimal_paths[break_idx].demerits_f_ = infinity_f; + optimal_paths[break_idx].line_config_ = backup_sol; } else { - optimal_paths[break_idx].prev_break_i_ = minimal_start_idx; + prev = minimal_start_idx; optimal_paths[break_idx].line_config_ = minimal_sol; optimal_paths[break_idx].demerits_f_ = minimal_demerits; - optimal_paths[break_idx].line_i_ = - optimal_paths[minimal_start_idx].line_i_ + 1; } + optimal_paths[break_idx].prev_break_i_ = prev; + optimal_paths[break_idx].line_i_ = optimal_paths[prev].line_i_ + 1; if (! (break_idx % HAPPY_DOTS_I)) *mlog << "[" << break_idx << "]" << flush; @@ -150,17 +145,14 @@ Gourlay_breaking::do_solve () const for (int i = optimal_paths.size ()-1; i> 0;) { final_breaks.push (i); - assert (i > optimal_paths[i].prev_break_i_); - - // there was no "feasible path" - if (!optimal_paths[i].line_config_.config_.size ()) { - final_breaks.set_size (0); - break; - } - i = optimal_paths[i].prev_break_i_; + int prev = optimal_paths[i].prev_break_i_; + assert (i > prev); + i = prev; } - + if (optimal_paths.top ().demerits_f_ >= infinity_f) + warning (_ ("No feasible line breaking found")); + for (int i= final_breaks.size (); i--;) lines.push (optimal_paths[final_breaks[i]].line_config_); @@ -188,5 +180,17 @@ Real Gourlay_breaking::combine_demerits (Column_x_positions const &prev, Column_x_positions const &this_one) const { - return abs (this_one.force_f_) + abs (prev.force_f_ - this_one.force_f_); + Real break_penalties = 0.0; + Paper_column * pc = this_one.cols_.top (); + if (pc->original_l_) + { + SCM pen = pc->get_elt_property (penalty_scm_sym); + if (pen != SCM_BOOL_F) + { + break_penalties += gh_scm2double (SCM_CDR(pen)); + } + } + + return abs (this_one.force_f_) + abs (prev.force_f_ - this_one.force_f_) + + break_penalties; } diff --git a/lily/hyphen-spanner.cc b/lily/hyphen-spanner.cc index 990c24884b..86c840e7eb 100644 --- a/lily/hyphen-spanner.cc +++ b/lily/hyphen-spanner.cc @@ -71,7 +71,7 @@ void Hyphen_spanner::do_post_processing () { // UGH - Real nw_f = paper_l ()->note_width () * 0.8; + Real gap = paper_l ()->get_realvar (interline_scm_sym); Direction d = LEFT; do @@ -81,7 +81,7 @@ Hyphen_spanner::do_post_processing () if (d == LEFT) dx_f_drul_[d] += t->extent (X_AXIS).length (); else - dx_f_drul_[d] -= d * nw_f / 2; + dx_f_drul_[d] -= d * gap / 2; } while (flip(&d) != LEFT); } diff --git a/lily/include/bar-engraver.hh b/lily/include/bar-engraver.hh index bbb26c7c70..64f0063470 100644 --- a/lily/include/bar-engraver.hh +++ b/lily/include/bar-engraver.hh @@ -26,15 +26,13 @@ public: protected: virtual void do_creation_processing (); virtual void do_removal_processing (); - virtual bool do_try_music (Music *req_l); virtual void do_process_requests(); virtual void do_pre_move_processing(); - virtual void do_post_move_processing(); + private: void create_bar (); - Bar_req * bar_req_l_; Bar * bar_p_; }; diff --git a/lily/include/bar-req-collector-engraver.hh b/lily/include/bar-req-collector-engraver.hh new file mode 100644 index 0000000000..126d2e0404 --- /dev/null +++ b/lily/include/bar-req-collector-engraver.hh @@ -0,0 +1,26 @@ +/* + bar-req-collect-engraver.hh -- declare + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys + + */ + +#ifndef BAR_REQ_COLLECT_ENGRAVER_HH +#define BAR_REQ_COLLECT_ENGRAVER_HH + +#include "engraver.hh" +class Bar_req_collect_engraver : public Engraver +{ + Bar_req* bar_req_l_; +public: + VIRTUAL_COPY_CONS(Translator); + void do_post_move_processing (); + bool do_try_music (Music *); +}; + + + +#endif /* Bar_Req_COLLECT_ENGRAVER_HH */ + diff --git a/lily/include/beam.hh b/lily/include/beam.hh index 145bbddce0..9e1cbb8346 100644 --- a/lily/include/beam.hh +++ b/lily/include/beam.hh @@ -31,7 +31,7 @@ public: The beams should be prevented to conflict with the stafflines, especially at small slopes. */ - enum Quantisation { NONE, NORMAL, TRADITIONAL, TEST }; + enum Quantisation { NONE, NORMAL, TRADITIONAL }; enum Dir_algorithm { /* DOWN=-1, UP=1, */ MAJORITY=2, MEAN, MEDIAN }; Link_array stems_; diff --git a/lily/include/break-algorithm.hh b/lily/include/break-algorithm.hh index e0548adf9e..8a25d7b554 100644 --- a/lily/include/break-algorithm.hh +++ b/lily/include/break-algorithm.hh @@ -25,7 +25,7 @@ class Break_algorithm { protected: Paper_score *pscore_l_; - Real linelength; + Real linewidth_f_; /// search all pcols which are breakable. Line_of_cols find_breaks() const; diff --git a/lily/include/column-x-positions.hh b/lily/include/column-x-positions.hh index 1048751401..d124535153 100644 --- a/lily/include/column-x-positions.hh +++ b/lily/include/column-x-positions.hh @@ -13,7 +13,7 @@ typedef Link_array Line_of_cols; struct Column_x_positions { - Simple_spacer * spacer_l_; + Line_of_cols cols_; Array config_; @@ -23,7 +23,6 @@ struct Column_x_positions { ~Column_x_positions(); Column_x_positions(); - void add_paper_column (Paper_column*c); void print() const; }; diff --git a/lily/include/command-request.hh b/lily/include/command-request.hh index b7a29e0f11..ee64d1fe27 100644 --- a/lily/include/command-request.hh +++ b/lily/include/command-request.hh @@ -18,8 +18,7 @@ class Break_req : public Request { public: - enum { DISALLOW = -10000, FORCE = 10000 }; - int penalty_i_; + Real penalty_f_; Break_req (); protected: VIRTUAL_COPY_CONS(Music); diff --git a/lily/include/cross-staff.hh b/lily/include/cross-staff.hh new file mode 100644 index 0000000000..9fdfb97f84 --- /dev/null +++ b/lily/include/cross-staff.hh @@ -0,0 +1,17 @@ +/* + cross-staff.hh -- declare cross staff calc funcs. + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys + + */ + +#ifndef CROSS_STAFF_HH +#define CROSS_STAFF_HH +#include "lily-proto.hh" +Real +calc_interstaff_dist (Item const *item, Spanner const *span); + +#endif /* CROSS_STAFF_HH */ + diff --git a/lily/include/encompass-info.hh b/lily/include/encompass-info.hh deleted file mode 100644 index 04caf77102..0000000000 --- a/lily/include/encompass-info.hh +++ /dev/null @@ -1,27 +0,0 @@ -/* - encompass-info.hh -- declare Encompass_info - - source file of the GNU LilyPond music typesetter - - (c) 1998--1999 Jan Nieuwenhuizen - -*/ - -#ifndef ENCOMPASS_INFO_HH -#define ENCOMPASS_INFO_HH - -#include "lily-proto.hh" -#include "direction.hh" -#include "offset.hh" - -struct Encompass_info -{ - Encompass_info (); - Encompass_info (Note_column const*, Direction, Slur const *); - - Offset o_; - // junkme - Real interstaff_f_; -}; - -#endif // ENCOMPASS_INFO_HH diff --git a/lily/include/ly-symbols.hh b/lily/include/ly-symbols.hh index 521fa3d06e..f0f3dd098d 100644 --- a/lily/include/ly-symbols.hh +++ b/lily/include/ly-symbols.hh @@ -64,6 +64,7 @@ DECLARE_LY_SYMBOL(octave_dir); DECLARE_LY_SYMBOL(origin); DECLARE_LY_SYMBOL(output); DECLARE_LY_SYMBOL(padding); +DECLARE_LY_SYMBOL(penalty); DECLARE_LY_SYMBOL(pianobrace); DECLARE_LY_SYMBOL(placebox); DECLARE_LY_SYMBOL(rulesym); diff --git a/lily/include/music-iterator.hh b/lily/include/music-iterator.hh index f7d9c061e3..d5ca0e0560 100644 --- a/lily/include/music-iterator.hh +++ b/lily/include/music-iterator.hh @@ -28,6 +28,8 @@ class Music_iterator { Interpretation_context_handle handle_; protected: + bool playback_b_; // Should use SCMs + Music const * music_l_; /// ugh. JUNKME @@ -73,9 +75,9 @@ public: void set_translator (Translator_group*); /** Get an iterator matching the type of MUS, and use TRANS to find - an accompanying translation unit - */ - static Music_iterator* static_get_iterator_p (Music const* mus); + an accompanying translation unit. Repeated music can be fully + unfolded by setting PLAYING */ + static Music_iterator* static_get_iterator_p (Music const* mus, bool playing); void init_translator (Music const *, Translator_group *); Music_iterator(); diff --git a/lily/include/paper-def.hh b/lily/include/paper-def.hh index 77942e8027..8615d9cf86 100644 --- a/lily/include/paper-def.hh +++ b/lily/include/paper-def.hh @@ -30,20 +30,18 @@ add support for multiple fontsizes - + remove all utility funcs add support for other len->wid conversions. - Input_engraver should be in here. - Interesting variables: /// The distance between lines interline - */ +*/ class Paper_def : public Music_output_def { Hash_table *lookup_p_tab_p_; @@ -54,7 +52,6 @@ protected: public: virtual ~Paper_def (); - Array shape_int_a_; Real get_realvar (SCM symbol) const; @@ -67,26 +64,13 @@ public: void set_lookup (int, Lookup*); Paper_def (Paper_def const&); - /// The distance between beams of multiplicity_i + /** The distance between beams of multiplicity_i + JUNKME + */ Real interbeam_f (int multiplicity_i) const; - /// The thickness of a beam - Real beam_thickness_f () const; - - /// thickness of the standard line - Real rule_thickness () const; - - /// thickness of the staff line - Real staffline_f () const; - Interval line_dimensions_int (int) const; - Real linewidth_f () const; - - /// height of the staff - Real staffheight_f () const; - /// width of a crotchet ball - Real note_width () const; void print () const; Lookup const * lookup_l (int sz) const; // TODO naming @@ -95,9 +79,10 @@ public: influence using the geometric_ and paratime_signatures. */ Real length_mom_to_dist (Moment, Real) const; - Real geometric_spacing (Moment) const; + Real arithmetic_constant (Moment minimal_mom) const; Real arithmetic_spacing (Moment mom,Real constant) const; + virtual int get_next_default_count () const; static void reset_default_count(); diff --git a/lily/include/paper-score.hh b/lily/include/paper-score.hh index c17afddfee..7fad9b8b32 100644 --- a/lily/include/paper-score.hh +++ b/lily/include/paper-score.hh @@ -23,14 +23,7 @@ class Paper_score : public Music_output { - /// crescs etc; no particular order - Link_array span_p_arr_; - - /// other elements - Link_array elem_p_arr_; - Link_array break_helpers_arr_; - - SCM protected_scms_; + SCM element_smob_list_; public: Paper_def *paper_l_; diff --git a/lily/include/score-column.hh b/lily/include/score-column.hh index 9c2097367e..eff9441bf3 100644 --- a/lily/include/score-column.hh +++ b/lily/include/score-column.hh @@ -26,16 +26,11 @@ */ class Score_column : public Paper_column { - friend class Score; - friend class Score_engraver; - - int break_penalty_i_; Moment when_; public: Moment shortest_playing_mom_; Moment shortest_starter_mom_; - int break_penalty_i () { return break_penalty_i_; } VIRTUAL_COPY_CONS(Score_element); diff --git a/lily/include/score-element.hh b/lily/include/score-element.hh index af9b484faa..25a30532ff 100644 --- a/lily/include/score-element.hh +++ b/lily/include/score-element.hh @@ -35,8 +35,6 @@ Boolean (true iff defined) */ class Score_element : public virtual Graphical_element { - - friend class Paper_score; /** properties specific for this element. Destructor will not call scm_unprotect, so as to allow more flexible GC arrangements. The @@ -82,7 +80,6 @@ public: Paper_def *paper_l () const; Lookup const *lookup_l () const; - virtual ~Score_element (); void add_processing (); void substitute_dependency (Score_element*,Score_element*); @@ -108,6 +105,12 @@ public: virtual Score_element *find_broken_piece (Line_of_score*) const; protected: + + /** + Junk score element. This is protected because this is supposed to + be handled by GUILE gc. */ + virtual ~Score_element (); + Score_element* dependency (int) const; int dependency_size () const; @@ -144,6 +147,14 @@ protected: virtual Link_array get_extra_dependencies () const; static Interval dim_cache_callback (Dimension_cache*); +public: + SCM smobify_self (); + static SCM mark_smob (SCM); + static scm_sizet free_smob (SCM s); + static int print_smob (SCM s, SCM p, scm_print_state*); + static long smob_tag; + static void init_smobs(); + SCM self_scm_; }; diff --git a/lily/include/score-engraver.hh b/lily/include/score-engraver.hh index e98e002681..2851980e05 100644 --- a/lily/include/score-engraver.hh +++ b/lily/include/score-engraver.hh @@ -20,7 +20,6 @@ class Score_engraver : public Engraver_group_engraver, public Global_translator { Line_of_score * scoreline_l_; - int break_penalty_i_; int breaks_i_; Link_array elem_p_arr_; diff --git a/lily/include/slur.hh b/lily/include/slur.hh index bf61df4b86..2fb4b5ede4 100644 --- a/lily/include/slur.hh +++ b/lily/include/slur.hh @@ -15,12 +15,14 @@ */ class Slur : public Bow { + int cross_staff_count () const; + Offset encompass_offset (Note_column const* )const; public: Slur (); VIRTUAL_COPY_CONS(Score_element); void add_column (Note_column*); - + Link_array encompass_arr_; protected: diff --git a/lily/include/timing-engraver.hh b/lily/include/timing-engraver.hh index 00d55c5a46..99621579ec 100644 --- a/lily/include/timing-engraver.hh +++ b/lily/include/timing-engraver.hh @@ -18,9 +18,14 @@ */ class Timing_engraver : public Timing_translator, public Engraver { + + Bar_req * bar_req_l_; protected: virtual void fill_staff_info (Staff_info&); + virtual bool do_try_music (Music * ); + virtual void do_post_move_processing (); public: + String which_bar (); VIRTUAL_COPY_CONS(Translator); }; diff --git a/lily/include/unfolded-repeat-iterator.hh b/lily/include/unfolded-repeat-iterator.hh index 22888cf29a..71adef6598 100644 --- a/lily/include/unfolded-repeat-iterator.hh +++ b/lily/include/unfolded-repeat-iterator.hh @@ -24,6 +24,9 @@ public: */ int done_count_; + + /// unfold everything, or do volta? + bool full_unfold_b_; /// are we busy doing the body? bool do_main_b_; diff --git a/lily/lily-guile.cc b/lily/lily-guile.cc index b2017c27af..311397cdd8 100644 --- a/lily/lily-guile.cc +++ b/lily/lily-guile.cc @@ -169,10 +169,13 @@ init_functions () } extern void init_symbols (); +extern void init_smobs (); // guh -> .hh + void init_lily_guile () { init_symbols(); init_functions (); + init_smobs (); } diff --git a/lily/lookup.cc b/lily/lookup.cc index 0e76c6849d..1000f37ab6 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -424,8 +424,12 @@ Lookup::text (String style, String text, Paper_def *paper_l) const brace_count ++; else if (text[i] == '}') brace_count --; - Character_metric *c = (Character_metric*)afm_l->get_char ((unsigned char)text[i],false); + Character_metric *c = (Character_metric*)afm_l-> + get_char ((unsigned char)text[i],false); + // Ugh, use the width of 'x' for unknown characters + if (c->dimensions()[X_AXIS].length () == 0) + c = (Character_metric*)afm_l->get_char ((unsigned char)'x',false); w += c->dimensions()[X_AXIS].length (); ydims.unite (c->dimensions()[Y_AXIS]); } diff --git a/lily/main.cc b/lily/main.cc index f4ad427ab9..c4062cb1a4 100644 --- a/lily/main.cc +++ b/lily/main.cc @@ -94,7 +94,11 @@ usage () cout << _ ("Typeset music and or play MIDI from FILE"); cout << "\n\n"; cout << -#include "BLURB.hh" +_( +"LilyPond is a music typesetter. It produces beautiful sheet music\n" +"using a high level description file as input. LilyPond is part of \n" +"the GNU Project.\n" +); cout << '\n'; cout << _ ("Options:"); diff --git a/lily/midi-def.cc b/lily/midi-def.cc index 5bda659f5d..47899ae066 100644 --- a/lily/midi-def.cc +++ b/lily/midi-def.cc @@ -59,10 +59,10 @@ void Midi_def::print() const { #ifndef NPRINT + DEBUG_OUT << "MIDI {\n"; Music_output_def::print (); - DEBUG_OUT << "Midi {"; DEBUG_OUT << "4/min: " << Moment (60) / (whole_in_seconds_mom_ * Moment (4)); - DEBUG_OUT << "}\n"; + DEBUG_OUT << "}\n"; #endif } diff --git a/lily/music-iterator.cc b/lily/music-iterator.cc index 9de2bb6af7..e5774c9f32 100644 --- a/lily/music-iterator.cc +++ b/lily/music-iterator.cc @@ -114,7 +114,7 @@ Music_iterator::ok() const } Music_iterator* -Music_iterator::static_get_iterator_p (Music const *m) +Music_iterator::static_get_iterator_p (Music const *m, bool playing) { Music_iterator * p =0; @@ -142,14 +142,15 @@ Music_iterator::static_get_iterator_p (Music const *m) p = new Music_wrapper_iterator; else if (Repeated_music const * n = dynamic_cast (m)) { - if (n->fold_b_) + if (n->fold_b_ && !playing) p = new Folded_repeat_iterator; else p = new Unfolded_repeat_iterator; } else assert (0); - + + p->playback_b_ = playing; p->music_l_ = m; return p; @@ -176,7 +177,7 @@ Music_iterator::init_translator (Music const *m, Translator_group *report_l) Music_iterator* Music_iterator::get_iterator_p (Music const*m) const { - Music_iterator*p = static_get_iterator_p (m); + Music_iterator*p = static_get_iterator_p (m, playback_b_); p->init_translator (m, report_to_l()); p->construct_children(); @@ -185,6 +186,7 @@ Music_iterator::get_iterator_p (Music const*m) const Music_iterator::Music_iterator() { + playback_b_ = false; first_b_ = true; } diff --git a/lily/paper-def.cc b/lily/paper-def.cc index 620bbb660f..dc99d4d87b 100644 --- a/lily/paper-def.cc +++ b/lily/paper-def.cc @@ -108,10 +108,10 @@ Paper_def::line_dimensions_int (int n) const { if (!shape_int_a_.size ()) { - if (n) - return Interval (0, linewidth_f ()); - else - return Interval (get_var ("indent"), linewidth_f ()); + Real lw = get_realvar (linewidth_scm_sym); + Real ind = n? 0.0:get_var ("indent"); + + return Interval (ind, lw); } if (n >= shape_int_a_.size ()) @@ -120,17 +120,6 @@ Paper_def::line_dimensions_int (int n) const return shape_int_a_[n]; } -Real -Paper_def::beam_thickness_f () const -{ - return get_realvar (beam_thickness_scm_sym); -} - -Real -Paper_def::linewidth_f () const -{ - return get_realvar (linewidth_scm_sym); -} Real Paper_def::length_mom_to_dist (Moment d,Real k) const @@ -171,24 +160,6 @@ Paper_def::set_lookup (int i, Lookup*l) } -Real -Paper_def::rule_thickness () const -{ - return get_realvar (rulethickness_scm_sym); -} - -Real -Paper_def::staffline_f () const -{ - return get_realvar (rulethickness_scm_sym); - } - -Real -Paper_def::staffheight_f () const -{ - return get_realvar (staffheight_scm_sym); - } - Real Paper_def::interbeam_f (int multiplicity_i) const { @@ -198,11 +169,6 @@ Paper_def::interbeam_f (int multiplicity_i) const return get_realvar (interbeam4_scm_sym); } -Real -Paper_def::note_width () const -{ - return get_realvar (notewidth_scm_sym); -} void Paper_def::print () const diff --git a/lily/paper-score.cc b/lily/paper-score.cc index 0d7cbfdddf..ef983e8053 100644 --- a/lily/paper-score.cc +++ b/lily/paper-score.cc @@ -24,12 +24,11 @@ Paper_score::Paper_score () { - protected_scms_ = scm_protect_object (gh_cons (SCM_BOOL_T, SCM_EOL)); paper_l_ =0; outputter_l_ =0; Line_of_score * line_p = new Line_of_score; - typeset_unbroken_spanner (line_p); - + line_p->pscore_l_ = this; + element_smob_list_ = scm_protect_object (gh_cons (line_p->self_scm_, SCM_EOL)); line_l_ = line_p; } @@ -41,40 +40,17 @@ Paper_score::Paper_score (Paper_score const &s) Paper_score::~Paper_score () { - for (int i=span_p_arr_.size (); --i >=0 ; ) - delete span_p_arr_[i]; - for (int i=elem_p_arr_.size (); --i >=0 ; ) - delete elem_p_arr_[i]; - - scm_unprotect_object (protected_scms_); + scm_unprotect_object (element_smob_list_); } void Paper_score::typeset_element (Score_element * elem_p) { - elem_p_arr_.push (elem_p); elem_p->pscore_l_ = this; - // take over protection. - SCM_CDR(protected_scms_) = gh_cons (elem_p->element_property_alist_, - SCM_CDR (protected_scms_)); - scm_unprotect_object (elem_p->element_property_alist_); - - SCM p = elem_p->remove_elt_property (break_helper_only_scm_sym); - if (p != SCM_BOOL_F) - break_helpers_arr_.push (elem_p); -} - - -void -Paper_score::typeset_unbroken_spanner (Spanner*span_p) -{ - span_p_arr_.push (span_p); - span_p->pscore_l_=this; - - SCM p = span_p->remove_elt_property (break_helper_only_scm_sym); - if (p != SCM_BOOL_F) - break_helpers_arr_.push (span_p); + SCM_CDR(element_smob_list_) = gh_cons (elem_p->self_scm_, + SCM_CDR (element_smob_list_)); + scm_unprotect_object (elem_p->self_scm_); } void @@ -85,21 +61,20 @@ Paper_score::add_column (Paper_column *p) typeset_element(p); } - - void Paper_score::print () const { #ifndef NPRINT if (!flower_dstream) return ; + DEBUG_OUT << "Paper_score { "; DEBUG_OUT << "\n elements: "; - for (int i=0; i < span_p_arr_.size (); i++) - span_p_arr_[i]->print (); - for (int i=0; i < elem_p_arr_.size (); i++) - elem_p_arr_[i]->print(); - + + for (SCM p = SCM_CDR (element_smob_list_); + p != SCM_EOL; + p = SCM_CDR(p)) + gh_display (SCM_CAR(p)); DEBUG_OUT << "}\n"; #endif } @@ -159,8 +134,6 @@ Paper_score::process () typeset_element (line_l); } - if (experimental_features_global_b) - *mlog << _f ("%s elements", elem_p_arr_.size () + span_p_arr_.size ()); *mlog << "\n"; *mlog << _ ("Line ... "); @@ -174,9 +147,6 @@ Paper_score::process () line_l->post_processing (); *mlog << i << flush; line_l->output_all (i + 1 == lines.size()); - if (experimental_features_global_b) - *mlog << '(' << elem_p_arr_.size () + span_p_arr_.size () << ')'; - *mlog << ']' << flush; } diff --git a/lily/parser.yy b/lily/parser.yy index feb3ae516e..4d84041f38 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -652,15 +652,21 @@ real_array: */ midi_block: MIDI - - '{' midi_body '}' { $$ = $3; } + '{' midi_body '}' { + $$ = $3; + THIS-> lexer_p_-> scope_l_arr_.pop(); + } ; midi_body: /* empty */ { - $$ = THIS->default_midi_p (); + Midi_def * p =THIS->default_midi_p (); + $$ = p; + THIS->lexer_p_->scope_l_arr_.push (p->scope_p_); } | MIDI_IDENTIFIER { - $$ = $1-> access_content_Midi_def (true); + Midi_def * p =$1-> access_content_Midi_def (true); + $$ = p; + THIS->lexer_p_->scope_l_arr_.push (p->scope_p_); } | midi_body assignment semicolon { @@ -1002,10 +1008,10 @@ verbose_command_req: m->one_beat_i_=$4; $$ = m; } - | PENALTY int { + | PENALTY int { Break_req * b = new Break_req; - b->penalty_i_ = $2; - b-> set_spot (THIS->here_input ()); + b->penalty_f_ = $2 / 100.0; + b->set_spot (THIS->here_input ()); $$ = b; } | SKIP duration_length { diff --git a/lily/score-column.cc b/lily/score-column.cc index 6c5209a435..334a35d4ba 100644 --- a/lily/score-column.cc +++ b/lily/score-column.cc @@ -13,7 +13,6 @@ Score_column::Score_column (Moment w) { - break_penalty_i_ = 0; when_ = w; } @@ -22,9 +21,6 @@ Score_column::do_print() const { #ifndef NPRINT DEBUG_OUT << " at " << when_ << '\n'; - if (break_penalty_i_ >= Break_req::FORCE) - DEBUG_OUT << "Break forced"; - DEBUG_OUT << "Shortest playing: " << shortest_playing_mom_ << " shortest starter: " << shortest_starter_mom_; Paper_column::do_print(); #endif diff --git a/lily/score-element.cc b/lily/score-element.cc index bdb4f4bd30..9282bfc010 100644 --- a/lily/score-element.cc +++ b/lily/score-element.cc @@ -44,13 +44,18 @@ Score_element::Score_element() pscore_l_=0; lookup_l_ =0; status_i_ = 0; + self_scm_ = SCM_EOL; original_l_ = 0; element_property_alist_ = scm_protect_object (gh_cons (gh_cons (void_scm_sym, SCM_BOOL_T) , SCM_EOL)); + + smobify_self (); } Score_element::Score_element (Score_element const&s) : Graphical_element (s) { + + self_scm_ = SCM_EOL; used_b_ = true; original_l_ =(Score_element*) &s; element_property_alist_ = scm_protect_object (scm_list_copy (s.element_property_alist_)); @@ -59,6 +64,8 @@ Score_element::Score_element (Score_element const&s) status_i_ = s.status_i_; lookup_l_ = s.lookup_l_; pscore_l_ = s.pscore_l_; + + smobify_self (); } Score_element::~Score_element() @@ -223,6 +230,9 @@ Score_element::output_processing () pscore_l_->outputter_l_->output_molecule (output_p_, o, classname(this)); + + delete output_p_; + output_p_ =0; } /* @@ -424,3 +434,70 @@ Score_element::find_broken_piece (Line_of_score*) const { return 0; } + +static scm_smobfuns score_elt_funs = { + Score_element::mark_smob, Score_element::free_smob, + Score_element::print_smob, 0, +}; + + +SCM +Score_element::smobify_self () +{ + if (self_scm_ != SCM_EOL) + return self_scm_; + + SCM s; + SCM_NEWCELL(s); + SCM_SETCAR(s,smob_tag); + void * me_p = this; + SCM_SETCDR(s,me_p); + scm_protect_object (s); + self_scm_ = s; + + scm_unprotect_object (element_property_alist_); // ugh + return s; +} + +SCM +Score_element::mark_smob (SCM ses) +{ + void * mp = (void*) SCM_CDR(ses); + Score_element * s = (Score_element*) mp; + + assert (s->self_scm_ == ses); + return s->element_property_alist_; +} + +scm_sizet +Score_element::free_smob (SCM ses) +{ + Score_element * s = (Score_element*) SCM_CDR(ses); + delete s; + return 0; +} + +int +Score_element::print_smob (SCM s, SCM port, scm_print_state *) +{ + Score_element *sc = (Score_element *) SCM_CDR (s); + + scm_puts ("#name (), port); + scm_puts (" >", port); + return 1; +} + +long Score_element::smob_tag; + +void +Score_element::init_smobs () +{ + smob_tag = scm_newsmob (&score_elt_funs); +} + +void +init_smobs() +{ + Score_element::init_smobs (); +} diff --git a/lily/score-engraver.cc b/lily/score-engraver.cc index 1c1d39205c..76580cbb38 100644 --- a/lily/score-engraver.cc +++ b/lily/score-engraver.cc @@ -20,7 +20,6 @@ Score_engraver::Score_engraver() { - break_penalty_i_ = 0; scoreline_l_ =0; command_column_l_ =0; musical_column_l_ =0; @@ -33,8 +32,8 @@ Score_engraver::prepare (Moment w) { Global_translator::prepare (w); set_columns (new Score_column (w), new Score_column (w)); - - break_penalty_i_ = 0; + + command_column_l_->set_elt_property (breakable_scm_sym, SCM_BOOL_T); post_move_processing(); } @@ -89,11 +88,7 @@ Score_engraver::announce_element (Score_element_info info) { announce_info_arr_.push (info); info.origin_trans_l_arr_.push (this); - - if (Spanner *s = dynamic_cast (info.elem_l_)) - pscore_p_->typeset_unbroken_spanner (s); - else if (Item *i = dynamic_cast (info.elem_l_)) - pscore_p_->typeset_element (i); + pscore_p_->typeset_element (info.elem_l_); } /* All elements are propagated to the top upon announcement. If @@ -174,9 +169,8 @@ Score_engraver::typeset_all() void Score_engraver::do_pre_move_processing() { - if (break_penalty_i_ > Break_req::DISALLOW) + if (command_column_l_->get_elt_property (breakable_scm_sym) != SCM_BOOL_F) { - command_column_l_->set_elt_property (breakable_scm_sym, SCM_BOOL_T); breaks_i_ ++; if (! (breaks_i_%8)) *mlog << "[" << breaks_i_ << "]" << flush; @@ -197,10 +191,8 @@ Score_engraver::set_columns (Score_column *new_command_l, scoreline_l_->add_column (command_column_l_); } else - { - delete command_column_l_ ; - command_column_l_ =0; - } + command_column_l_ =0; + if (new_command_l) command_column_l_ = new_command_l; @@ -210,10 +202,7 @@ Score_engraver::set_columns (Score_column *new_command_l, scoreline_l_->add_column (musical_column_l_); } else - { - delete musical_column_l_; - musical_column_l_ = 0; - } + musical_column_l_ = 0; if (new_musical_l) { @@ -249,16 +238,22 @@ Score_engraver::do_try_music (Music*r) if (!gotcha) { - /* - UGH! THIS IS NOT SYMMETRIC. CLEAN ME UP! - */ if (Break_req* b = dynamic_cast (r)) { gotcha = true; - if (b->penalty_i_ <= Break_req::DISALLOW) - break_penalty_i_ = b->penalty_i_; - else if (b->penalty_i_ >= Break_req::FORCE) - command_column_l_->break_penalty_i_ = b->penalty_i_; + + + SCM pen = command_column_l_->get_elt_property (penalty_scm_sym); + Real total_penalty = (pen == SCM_BOOL_F) + ? 0.0 + : gh_scm2double (SCM_CDR(pen)); // ugh. Should typecheck. + + total_penalty += b->penalty_f_; + if (b->penalty_f_ > 10000.0) // ugh. arbitrary. + forbid_breaks (); + + command_column_l_->set_elt_property (penalty_scm_sym, + gh_double2scm (total_penalty)); } } return gotcha; @@ -267,7 +262,7 @@ Score_engraver::do_try_music (Music*r) void Score_engraver::forbid_breaks () { - break_penalty_i_ = Break_req::DISALLOW; + SCM junk = command_column_l_->remove_elt_property (breakable_scm_sym); } ADD_THIS_TRANSLATOR(Score_engraver); diff --git a/lily/score.cc b/lily/score.cc index 0c56c31bbe..5f9a2b65c5 100644 --- a/lily/score.cc +++ b/lily/score.cc @@ -59,7 +59,9 @@ Score::run_translator (Music_output_def *odef_l) *mlog << '\n' << _("Interpreting music...") << flush; trans_p->last_mom_ = music_p_->length_mom (); - Music_iterator * iter = Music_iterator::static_get_iterator_p (music_p_); + + bool playing = odef_l->scope_p_->elem_b ("unfold_all"); + Music_iterator * iter = Music_iterator::static_get_iterator_p (music_p_, playing); iter->init_translator(music_p_, trans_p); iter->construct_children(); diff --git a/lily/separating-group-spanner.cc b/lily/separating-group-spanner.cc index 590a10c78b..a07381b615 100644 --- a/lily/separating-group-spanner.cc +++ b/lily/separating-group-spanner.cc @@ -90,6 +90,5 @@ Separating_group_spanner::do_substitute_element_pointer (Score_element*o, Separating_group_spanner::Separating_group_spanner() { - set_elt_property (break_helper_only_scm_sym, SCM_BOOL_T); padding_f_ =0.0; } diff --git a/lily/simultaneous-music-iterator.cc b/lily/simultaneous-music-iterator.cc index 1faaa67c13..7f1ff97560 100644 --- a/lily/simultaneous-music-iterator.cc +++ b/lily/simultaneous-music-iterator.cc @@ -31,7 +31,7 @@ Simultaneous_music_iterator::construct_children() Cons *i = (sim->music_p_list_p_) ? sim->music_p_list_p_->head_ : 0; for (; i; i = i->next_, j++) { - Music_iterator * mi = static_get_iterator_p (i->car_); + Music_iterator * mi = static_get_iterator_p (i->car_, playback_b_); /* if separate_contexts_b_ is set, create a new context with the number number as name */ diff --git a/lily/single-malt-grouping-item.cc b/lily/single-malt-grouping-item.cc index c3804bf2b3..90227b09b2 100644 --- a/lily/single-malt-grouping-item.cc +++ b/lily/single-malt-grouping-item.cc @@ -13,7 +13,6 @@ Single_malt_grouping_item ::Single_malt_grouping_item() { - set_elt_property (break_helper_only_scm_sym, SCM_BOOL_T); set_elt_property (transparent_scm_sym, SCM_BOOL_T); // this is weird! , but needed! diff --git a/lily/slur.cc b/lily/slur.cc index 0aa11a6ab4..c8582e8abb 100644 --- a/lily/slur.cc +++ b/lily/slur.cc @@ -24,8 +24,8 @@ #include "debug.hh" #include "box.hh" #include "bezier.hh" -#include "encompass-info.hh" #include "main.hh" +#include "cross-staff.hh" Slur::Slur () { @@ -91,6 +91,51 @@ Note_column_compare (Note_column *const&n1 , Note_column* const&n2) return Item::left_right_compare (n1, n2); } + +Offset +Slur::encompass_offset (Note_column const* col) const +{ + Offset o; + Stem* stem_l = col->stem_l_; + if (!stem_l) + { + warning (_ ("Slur over rest?")); + o[X_AXIS] = col->hpos_f (); + o[Y_AXIS] = col->extent (Y_AXIS)[dir_]; + return o; + } + + o[X_AXIS] = stem_l->hpos_f (); + + /* + Simply set x to middle of notehead + */ + + o[X_AXIS] -= 0.5 * stem_l->dir_ * col->extent (X_AXIS).length (); + + if ((stem_l->dir_ == dir_) + && !stem_l->extent (Y_AXIS).empty_b ()) + { + o[Y_AXIS] = stem_l->extent (Y_AXIS)[dir_]; + } + else + { + o[Y_AXIS] = col->extent (Y_AXIS)[dir_]; + } + + /* + leave a gap: slur mustn't touch head/stem + */ + o[Y_AXIS] += dir_ * paper_l ()->get_var ("slur_y_free"); + o[Y_AXIS] += calc_interstaff_dist (stem_l, this); + return o; +} + +/* + ARGRARGRARGRARGAR! + + Fixme + */ void Slur::do_post_processing () { @@ -198,36 +243,34 @@ Slur::do_post_processing () } while (flip (&d) != LEFT); - int interstaff_i = 0; - for (int i = 0; i < encompass_arr_.size (); i++) + bool cross_count = cross_staff_count (); + bool interstaff_b = (0 < cross_count) && (cross_count < encompass_arr_.size ()); + + Drul_array info_drul; + Interval interstaff_interval; + + do { - Encompass_info info (encompass_arr_[i], dir_, this); - if (info.interstaff_f_) - { - interstaff_i++; - } + info_drul[d] = encompass_offset (encompass_arr_.boundary (d, 0)); + interstaff_interval[d] = calc_interstaff_dist (encompass_arr_.boundary (d,0), + this); } - bool interstaff_b = interstaff_i && (interstaff_i < encompass_arr_.size ()); - - Drul_array info_drul; - info_drul[LEFT] = Encompass_info (encompass_arr_[0], dir_, this); - info_drul[RIGHT] = Encompass_info (encompass_arr_.top (), dir_, this); - Real interstaff_f = info_drul[RIGHT].interstaff_f_ - - info_drul[LEFT].interstaff_f_; + while (flip (&d) != LEFT); + + Real interstaff_f = interstaff_interval.length (); if (fix_broken_b) { Direction d = (encompass_arr_.top () != spanned_drul_[RIGHT]) ? RIGHT : LEFT; - dy_f_drul_[d] = info_drul[d].o_[Y_AXIS]; + dy_f_drul_[d] = info_drul[d][Y_AXIS]; if (!interstaff_b) { - dy_f_drul_[d] -= info_drul[d].interstaff_f_; - - if (interstaff_i) + dy_f_drul_[d] -= interstaff_interval[d]; + if (cross_count) // interstaff_i ? { - dy_f_drul_[LEFT] += info_drul[d].interstaff_f_; - dy_f_drul_[RIGHT] += info_drul[d].interstaff_f_; + dy_f_drul_[LEFT] += interstaff_interval[d]; + dy_f_drul_[RIGHT] += interstaff_interval[d]; } } } @@ -238,25 +281,13 @@ Slur::do_post_processing () Catch and correct some ugly cases */ - Real height_damp_f; - Real slope_damp_f; - Real snap_f; - Real snap_max_dy_f; + - if (!interstaff_b) - { - height_damp_f = paper_l ()->get_var ("slur_height_damping"); - slope_damp_f = paper_l ()->get_var ("slur_slope_damping"); - snap_f = paper_l ()->get_var ("slur_snap_to_stem"); - snap_max_dy_f = paper_l ()->get_var ("slur_snap_max_slope_change"); - } - else - { - height_damp_f = paper_l ()->get_var ("slur_interstaff_height_damping"); - slope_damp_f = paper_l ()->get_var ("slur_interstaff_slope_damping"); - snap_f = paper_l ()->get_var ("slur_interstaff_snap_to_stem"); - snap_max_dy_f = paper_l ()->get_var ("slur_interstaff_snap_max_slope_change"); - } + String infix = interstaff_b ? "interstaff_" : ""; + Real height_damp_f = paper_l ()->get_var ("slur_"+infix +"height_damping"); + Real slope_damp_f = paper_l ()->get_var ("slur_"+infix +"slope_damping"); + Real snap_f = paper_l ()->get_var ("slur_"+infix +"snap_to_stem"); + Real snap_max_dy_f = paper_l ()->get_var ("slur_"+infix +"snap_max_slope_change"); if (!fix_broken_b) dy_f_drul_[RIGHT] += interstaff_f; @@ -338,22 +369,24 @@ Slur::do_post_processing () snapped_b_drul[LEFT] = snapped_b_drul[RIGHT] = false; do { - if ((note_column_drul[d] == spanned_drul_[d]) - && (note_column_drul[d]->stem_l_) - && (note_column_drul[d]->stem_l_->dir_ == dir_) - && (abs (note_column_drul[d]->stem_l_->extent (Y_AXIS)[dir_] - - dy_f_drul_[d] + (d == LEFT ? 0 : interstaff_f)) - <= snap_f)) + Note_column * nc = note_column_drul[d]; + if (nc == spanned_drul_[d] + && nc->stem_l_ + && nc->stem_l_->dir_ == dir_ + && abs (nc->stem_l_->extent (Y_AXIS)[dir_] + - dy_f_drul_[d] + (d == LEFT ? 0 : interstaff_f)) + <= snap_f) { /* prepare to attach to stem-end */ - Stem* stem_l = note_column_drul[d]->stem_l_; - snapx_f_drul[d] = stem_l->hpos_f () + snapx_f_drul[d] = nc->stem_l_->hpos_f () - spanned_drul_[d]->relative_coordinate (0, X_AXIS); - snapy_f_drul[d] = stem_l->extent (Y_AXIS)[dir_]; - snapy_f_drul[d] += info_drul[d].interstaff_f_; - snapy_f_drul[d] += dir_ * 2 * y_gap_f; + + snapy_f_drul[d] = nc->stem_l_->extent (Y_AXIS)[dir_] + + interstaff_interval[d] + + dir_ * 2 * y_gap_f; + snapped_b_drul[d] = true; } } @@ -365,39 +398,53 @@ Slur::do_post_processing () */ if (!fix_broken_b) dy_f += interstaff_f; + + + /* + (sigh) + + More refactoring could be done. + */ + Real maxsnap = abs (dy_f * snap_max_dy_f); if (snapped_b_drul[LEFT] && snapped_b_drul[RIGHT] && ((sign (snapy_f_drul[RIGHT] - snapy_f_drul[LEFT]) == sign (dy_f))) && (!dy_f || (abs (snapy_f_drul[RIGHT] - snapy_f_drul[LEFT] - dy_f) - < abs (dy_f * snap_max_dy_f)))) - { - do - { - dy_f_drul_[d] = snapy_f_drul[d]; - dx_f_drul_[d] = snapx_f_drul[d]; - } - while (flip (&d) != LEFT); - - } - else if (snapped_b_drul[LEFT] - && ((sign (dy_f_drul_[RIGHT] - snapy_f_drul[LEFT]) == sign (dy_f))) - && (!dy_f || (abs (dy_f_drul_[RIGHT] - snapy_f_drul[LEFT] - dy_f) - < abs (dy_f * snap_max_dy_f)))) + < maxsnap))) { - Direction d = LEFT; - dy_f_drul_[d] = snapy_f_drul[d]; - dx_f_drul_[d] = snapx_f_drul[d]; + dy_f_drul_ = snapy_f_drul; + dx_f_drul_ = snapx_f_drul; } - else if (snapped_b_drul[RIGHT] - && ((sign (snapy_f_drul[RIGHT] - dy_f_drul_[LEFT]) == sign (dy_f))) - && (!dy_f || (abs (snapy_f_drul[RIGHT] - dy_f_drul_[LEFT] - dy_f) - < abs (dy_f * snap_max_dy_f)))) + else + do + { + Direction od = (Direction)-d; + if (snapped_b_drul[d] + && d * sign (snapy_f_drul[d] - dy_f_drul_[od]) == sign (dy_f) + && (!dy_f || (abs (snapy_f_drul[d] - dy_f_drul_[od] - d * dy_f) + < maxsnap))) + { + dy_f_drul_[d] = snapy_f_drul[d]; + dx_f_drul_[d] = snapx_f_drul[d]; + } + } + while (flip (&d) != LEFT); +} + + +int +Slur::cross_staff_count ()const +{ + int k=0; + + for (int i = 0; i < encompass_arr_.size (); i++) { - Direction d = RIGHT; - dy_f_drul_[d] = snapy_f_drul[d]; - dx_f_drul_[d] = snapx_f_drul[d]; + if (calc_interstaff_dist (encompass_arr_[i], this)) + k++; } + return k; } + Array Slur::get_encompass_offset_arr () const { @@ -411,17 +458,6 @@ Slur::get_encompass_offset_arr () const offset_arr.push (Offset (0, dy_f_drul_[RIGHT])); return offset_arr; #endif - - int interstaff_i = 0; - for (int i = 0; i < encompass_arr_.size (); i++) - { - Encompass_info info (encompass_arr_[i], dir_, this); - if (info.interstaff_f_) - { - interstaff_i++; - } - } - bool interstaff_b = interstaff_i && (interstaff_i < encompass_arr_.size ()); Offset origin (relative_coordinate (0, X_AXIS), 0); @@ -429,15 +465,19 @@ Slur::get_encompass_offset_arr () const int last = encompass_arr_.size () - 2; offset_arr.push (Offset (dx_f_drul_[LEFT], dy_f_drul_[LEFT])); + /* left is broken edge */ + + int cross_count = cross_staff_count (); + bool cross_b = cross_count && cross_count < encompass_arr_.size (); if (encompass_arr_[0] != spanned_drul_[LEFT]) { first--; - Encompass_info left_info (encompass_arr_[0], dir_, this); - if (interstaff_b) - offset_arr[0][Y_AXIS] += left_info.interstaff_f_; + Real is = calc_interstaff_dist (encompass_arr_[0], this); + if (cross_b) + offset_arr[0][Y_AXIS] += is; } /* @@ -450,8 +490,8 @@ Slur::get_encompass_offset_arr () const for (int i = first; i <= last; i++) { - Encompass_info info (encompass_arr_[i], dir_, this); - offset_arr.push (info.o_ - origin); + Offset o (encompass_offset (encompass_arr_[i])); + offset_arr.push (o - origin); } offset_arr.push (Offset (do_width ().length () + dx_f_drul_[RIGHT], diff --git a/lily/spacing-spanner.cc b/lily/spacing-spanner.cc index 479855cdcd..967783c294 100644 --- a/lily/spacing-spanner.cc +++ b/lily/spacing-spanner.cc @@ -17,7 +17,6 @@ Spacing_spanner::Spacing_spanner () { - set_elt_property (break_helper_only_scm_sym, SCM_BOOL_T); set_elt_property (transparent_scm_sym, SCM_BOOL_T); } diff --git a/lily/staff-sym.cc b/lily/staff-sym.cc index 4c33372710..7ab14e91ba 100644 --- a/lily/staff-sym.cc +++ b/lily/staff-sym.cc @@ -56,7 +56,7 @@ Staff_symbol::do_brew_molecule_p() const - spanned_drul_[LEFT]->relative_coordinate (common, X_AXIS) ; - Real t = paper_l ()->get_var ("rulethickness"); + Real t = paper_l ()->get_var ("stafflinethickness"); Molecule rule = lookup_l ()->filledbox (Box (Interval (0,width), Interval (-t/2, t/2))); diff --git a/lily/stem-info.cc b/lily/stem-info.cc index 8578c0e71b..4a9e06e05e 100644 --- a/lily/stem-info.cc +++ b/lily/stem-info.cc @@ -9,24 +9,23 @@ #include "proto.hh" #include "misc.hh" -#include "debug.hh" -#include "dimension-cache.hh" +#include "cross-staff.hh" -#include "align-element.hh" #include "stem.hh" #include "paper-def.hh" #include "lookup.hh" #include "stem-info.hh" #include "beam.hh" -#include "staff-symbol.hh" + Stem_info::Stem_info () { } + + /* FIXME: y dims should not be in internote. */ - Stem_info::Stem_info (Stem*s, int mult) { mult_i_ =mult; @@ -41,14 +40,8 @@ Stem_info::Stem_info (Stem*s, int mult) Paper_def* paper_l = stem_l_->paper_l (); Real internote_f = stem_l_->staff_line_leading_f ()/2; Real interbeam_f = paper_l->interbeam_f (mult_i_); - Real beam_f = paper_l->beam_thickness_f (); + Real beam_f = paper_l->get_realvar (beam_thickness_scm_sym);; - { - static int i = 1; - DEBUG_OUT << "******" << i++ << "******\n" - << "begin_f: " << stem_l_->stem_begin_f () * dir_ - << "\nchord_f/i: " << stem_l_->chord_start_f () * dir_ / internote_f << '\n'; - } // strangely enough, dim(chord_start_f) == pt (and not internote!) idealy_f_ = stem_l_->chord_start_f () / internote_f; @@ -105,8 +98,6 @@ Stem_info::Stem_info (Stem*s, int mult) /* knee */ { idealy_f_ -= beam_f; - // idealy_f_ -= (mult_i_ - 1) * interbeam_f; - // idealy_f_ += (mult_i_ - stem_l_->flag_i_ >? 0) * interbeam_f; maxy_f_ = idealy_f_; miny_f_ = -INT_MAX; @@ -119,51 +110,15 @@ Stem_info::Stem_info (Stem*s, int mult) miny_f_ /= internote_f; maxy_f_ /= internote_f; - DEBUG_OUT << "dir_: " << dir_ << '\n'; - DEBUG_OUT << "mult_i_: " << mult_i_ << '\n'; - DEBUG_OUT << "idealy_f_: " << idealy_f_ << '\n'; - DEBUG_OUT << "miny_f_: " << miny_f_ << '\n'; - DEBUG_OUT << "maxy_f_: " << maxy_f_ << '\n'; - idealy_f_ = maxy_f_ ? idealy_f_; // interstaff beam Beam* beam_l = stem_l_->beam_l_; - Graphical_element *common = stem_l_->common_refpoint (beam_l, Y_AXIS); - Align_element * align = dynamic_cast (common); - if (align && align->axis() == Y_AXIS) - { - if (align->threshold_interval_[MIN] != - align->threshold_interval_[MAX]) - warning (_ ("minVerticalAlign != maxVerticalAlign: interstaff beams/slurs may be broken")); - - interstaff_f_ = align->threshold_interval_[MIN] / internote_f; - - Graphical_element * beam_refpoint = beam_l; - Graphical_element * stem_refpoint = stem_l_; - - while (beam_refpoint->parent_l (Y_AXIS) != common) - beam_refpoint = beam_refpoint->parent_l (Y_AXIS); - while (stem_refpoint->parent_l (Y_AXIS) != common) - stem_refpoint = stem_refpoint->parent_l (Y_AXIS); - - - int beam_prio = - align->get_priority (dynamic_cast (beam_refpoint)); - int stem_prio = - align->get_priority (dynamic_cast (stem_refpoint)); - - /* - our staff is lower -> interstaff_f_ *= -1 - */ - if (beam_prio < stem_prio) - interstaff_f_ *= -1; - - idealy_f_ += interstaff_f_ * beam_dir_; - miny_f_ += interstaff_f_ * beam_dir_; - maxy_f_ += interstaff_f_ * beam_dir_; - } + Real is = calc_interstaff_dist (stem_l_, beam_l); + idealy_f_ += is* beam_dir_; + miny_f_ += is * beam_dir_; + maxy_f_ += is * beam_dir_; } diff --git a/lily/stem-tremolo.cc b/lily/stem-tremolo.cc index 5f2667bb79..71dead81d1 100644 --- a/lily/stem-tremolo.cc +++ b/lily/stem-tremolo.cc @@ -54,7 +54,7 @@ Stem_tremolo::do_brew_molecule_p () const Real space = stem_l_->staff_line_leading_f (); Real internote_f = space/2; - Real beam_f = paper_l ()->beam_thickness_f (); + Real beam_f = paper_l ()->get_realvar (beam_thickness_scm_sym); int beams_i = 0; Real slope_f = internote_f / 4 / internote_f; // HUH? diff --git a/lily/stem.cc b/lily/stem.cc index aef8245546..919969187c 100644 --- a/lily/stem.cc +++ b/lily/stem.cc @@ -370,7 +370,8 @@ Stem::note_delta_f () const if (head_l_arr_.size()) { Interval head_wid(0, head_l_arr_[0]->extent (X_AXIS).length ()); - Real rule_thick(paper_l ()->rule_thickness ()); + Real rule_thick = paper_l ()->get_var ("stemthickness"); + Interval stem_wid(-rule_thick/2, rule_thick/2); if (dir_ == CENTER) r = head_wid.center (); diff --git a/lily/timing-engraver.cc b/lily/timing-engraver.cc index 953e802f4b..3fa208f15d 100644 --- a/lily/timing-engraver.cc +++ b/lily/timing-engraver.cc @@ -20,3 +20,50 @@ Timing_engraver::fill_staff_info (Staff_info &inf) ADD_THIS_TRANSLATOR(Timing_engraver); + + +void +Timing_engraver::do_post_move_processing( ) +{ + bar_req_l_ = 0; + Timing_translator::do_post_move_processing (); +} + +bool +Timing_engraver::do_try_music (Music*m) +{ + if (Bar_req * b= dynamic_cast (m)) + { + if (bar_req_l_ && bar_req_l_->equal_b (b)) // huh? + return false; + + bar_req_l_ = b; + return true; + } + + return Timing_translator::do_try_music (m); +} + + +String +Timing_engraver::which_bar () +{ + if (!bar_req_l_) + { + if (!now_mom ()) + return "|"; + + Scalar nonauto = get_property ("barNonAuto", 0); + if (!nonauto.to_bool ()) + { + Scalar always = get_property ("barAlways", 0); + if (!time_.whole_in_measure_ || always.to_bool ()) + return get_property ("defaultBarType" ,0); + } + return ""; + } + else + { + return bar_req_l_->type_str_; + } +} diff --git a/lily/unfolded-repeat-iterator.cc b/lily/unfolded-repeat-iterator.cc index cbc5e008a6..901d69f80b 100644 --- a/lily/unfolded-repeat-iterator.cc +++ b/lily/unfolded-repeat-iterator.cc @@ -49,7 +49,7 @@ Unfolded_repeat_iterator::next_element () { done_mom_ += mus->repeat_body_p_->length_mom (); - if (!mus->volta_fold_b_) + if (full_unfold_b_) done_count_ ++; if (alternative_cons_l_) @@ -57,7 +57,7 @@ Unfolded_repeat_iterator::next_element () current_iter_p_ = get_iterator_p (alternative_cons_l_->car_); do_main_b_ = false; } - else if (done_count_ < mus->repeats_i_ && !mus->volta_fold_b_) + else if (done_count_ < mus->repeats_i_ && full_unfold_b_) { current_iter_p_ = get_iterator_p (mus->repeat_body_p_); do_main_b_ = true; @@ -73,20 +73,20 @@ Unfolded_repeat_iterator::next_element () { done_mom_ += alternative_cons_l_->car_->length_mom (); - if (mus->volta_fold_b_ || + if (!full_unfold_b_ || mus->repeats_i_ - done_count_ < alternative_count_i_) alternative_cons_l_ = alternative_cons_l_->next_; /* we've done the main body as well, but didn't go over the other increment. */ - if (mus->volta_fold_b_) + if (full_unfold_b_) done_count_ ++; } if (done_count_ < mus->repeats_i_ && alternative_cons_l_) { - if (mus->volta_fold_b_) + if (!full_unfold_b_) current_iter_p_ = get_iterator_p (alternative_cons_l_->car_); else { @@ -114,6 +114,8 @@ void Unfolded_repeat_iterator::construct_children () { Repeated_music const* mus =dynamic_cast (music_l_); + full_unfold_b_ = playback_b_ || (!mus->volta_fold_b_); + alternative_cons_l_ = (mus->alternatives_p_) ? mus->alternatives_p_->music_p_list_p_->head_ : 0; diff --git a/ly/declarations.ly b/ly/declarations.ly index 3b44423d82..a6e51b9395 100644 --- a/ly/declarations.ly +++ b/ly/declarations.ly @@ -20,8 +20,8 @@ bigger = 1 center=0 -break = \penalty 10000; -nobreak = \penalty -10000; +break = \penalty -1000000; +nobreak = \penalty 1000000; major = 0 minor = 3 diff --git a/ly/engraver.ly b/ly/engraver.ly index fadc695390..1e8acfac43 100644 --- a/ly/engraver.ly +++ b/ly/engraver.ly @@ -188,7 +188,8 @@ StaffGroupContext= \translator { }; \translator { \StaffGroupContext } -\translator{ +% UGH! JUNKME +LyricsVoiceContext= \translator{ \type "Engraver_group_engraver"; \consistsend "Axis_group_engraver"; @@ -197,9 +198,10 @@ StaffGroupContext= \translator { \consists "Lyric_engraver"; \consists "Extender_engraver"; \consists "Hyphen_engraver"; -} +}; +\translator{ \LyricsVoiceContext } -\translator { +LyricsContext = \translator { \type "Engraver_group_engraver"; \name Lyrics; \consists Vertical_align_engraver;%need this for getting folded repeats right. @@ -207,7 +209,8 @@ StaffGroupContext= \translator { \consistsend "Axis_group_engraver"; \accepts "LyricVoice"; -} +}; +\translator { \LyricsContext } \translator{ \type "Engraver_group_engraver"; @@ -271,13 +274,14 @@ ScoreContext = \translator { \name Score; \consists "Timing_engraver"; + \consists "Span_score_bar_engraver"; \consists "Score_priority_engraver"; \consists "Spacing_engraver"; \consists "Vertical_align_engraver"; alignmentReference = \down; defaultClef = treble; - + defaultBarType = "|"; \accepts "Staff"; \accepts "StaffGroup"; \accepts "RhythmicStaff"; diff --git a/ly/midi.ly b/ly/midi.ly index 114d34f20f..d47242bf58 100644 --- a/ly/midi.ly +++ b/ly/midi.ly @@ -2,4 +2,5 @@ \midi { \tempo 4=60; \include "performer.ly" +% unfold_all = "1"; } diff --git a/ly/params.ly b/ly/params.ly index f0e9893b8d..96b0057fa8 100644 --- a/ly/params.ly +++ b/ly/params.ly @@ -9,12 +9,11 @@ paperfile = \papersize + ".ly"; interline = \staffheight / 4.0; -% thickness of stafflines -staffline = \interline / 10.0; +stafflinethickness = \interline / 10.0; % urg, need grace_ versions of these too? -beam_thickness = 0.52 * (\interline - \staffline); -interbeam = (2.0 * \interline + \staffline - \beam_thickness) / 2.0; +beam_thickness = 0.52 * (\interline - \stafflinethickness); +interbeam = (2.0 * \interline + \stafflinethickness - \beam_thickness) / 2.0; interbeam4 = (3.0 * \interline - \beam_thickness) / 3.0; % stems and beams @@ -153,8 +152,8 @@ tie_y_gap = 0.25 * \interline; tie_staffspace_length = 4.0 * \interline; % ugh: rename to bow (in bezier.cc and fonts.doc too...) -% slur_thickness = 1.8 * \staffline; -slur_thickness = 1.4 * \staffline; +% slur_thickness = 1.8 * \stafflinethickness; +slur_thickness = 1.4 * \stafflinethickness; %{ Specifies the maximum height of slurs. @@ -178,9 +177,6 @@ slur_rc_factor = 2.4; % ugh notewidth = (\quartwidth + \wholewidth) / 2.0; -% ugh -rulethickness = \staffline; - gourlay_energybound = 100000.; %{ Maximum number of measures per line to try when using Gourlay @@ -200,23 +196,23 @@ barthick_thin = 0.1*\interline; %} -bar_kern = 3.0 * \staffline; -bar_thinkern = 3.0 * \staffline; -barthick_thick = 6.0* \staffline; -barthick_thin = 1.6*\staffline; -barthick_score = 1.6*\staffline; +bar_kern = 3.0 * \stafflinethickness; +bar_thinkern = 3.0 * \stafflinethickness; +barthick_thick = 6.0* \stafflinethickness; +barthick_thin = 1.6*\stafflinethickness; +barthick_score = 1.6*\stafflinethickness; tuplet_spanner_gap = 2.0 * \interline; -tuplet_thick = 1.0*\staffline; -volta_thick = 1.6*\staffline; +tuplet_thick = 1.0*\stafflinethickness; +volta_thick = 1.6*\stafflinethickness; volta_spanner_height = 2.0 *\interline; % relative thickness of thin lines 1.6 : 1 : 0.8 -stemthickness = 0.8*\staffline; -rulethickness = \staffline; +stemthickness = 0.8*\stafflinethickness; +rulethickness = \stafflinethickness; -extender_height = 0.8*\staffline; +extender_height = 0.8*\stafflinethickness; hyphen_thickness = 0.05*\font_normal; hyphen_height = 0.2*\font_normal; @@ -228,12 +224,17 @@ mmrest_x_minimum = 1.4*\staffheight; % chop off this much when next to pp / ff sign. crescendo_shorten = 4.0 * \interline; -crescendo_thickness = \staffline; +crescendo_thickness = \stafflinethickness; +crescendo_height = 1.5 * \interline; % in internote. restcollision_minimum_dist = 3.0; restcollision_minimum_beamdist = 1.5; + +% unit for note collision resolving +collision_note_width = \notewidth; %ugh. + % deprecated! postBreakPadding = 0.0; diff --git a/ly/property.ly b/ly/property.ly index 351e34d008..ea41ac9656 100644 --- a/ly/property.ly +++ b/ly/property.ly @@ -66,17 +66,13 @@ voicefour = % ugh, cluttering global namespace... % ugh2. -none=0 -free=0 -normal=1 -traditional=2 infinity=10000 beamslopeproportional = - \property Score.beamslopedamping = \none + \property Score.beamslopedamping = 0 beamslopedamped = - \property Score.beamslopedamping = \normal + \property Score.beamslopedamping = 1 beamslopezero = @@ -86,15 +82,15 @@ beamslopezero = % this sucks, you'd want to pass an array, at least % (or embedded code: you still can't dictate the slope / stemlength) beamposfree = - \property Score.beamquantisation = \none + \property Score.beamquantisation = 0 beamposnormal = - \property Score.beamquantisation = \normal + \property Score.beamquantisation = 1 beampostraditional = - \property Score.beamquantisation = \traditional + \property Score.beamquantisation = 2 slurnormal = diff --git a/make/lilypond.spec.in b/make/lilypond.spec.in index 30d2c85045..74c0e642e9 100644 --- a/make/lilypond.spec.in +++ b/make/lilypond.spec.in @@ -17,7 +17,7 @@ Prereq: tetex %package documentation Summary: Prebuilt website containing all LilyPond documentation. Group: Applications/Publishing -BuildArchitectures: noarch +# BuildArchitectures: noarch %description documentation @BLURB@ diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index 1b497ebb49..2997e73783 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -1,18 +1,15 @@ Begin3 Title: LilyPond -Version: 1.2.14 -Entered-date: 17OCT99 +Version: 1.2.15 +Entered-date: 18OCT99 Description: -LilyPond is a music typesetter. It produces beautiful sheet music -using a high level description file as input. LilyPond is part of -the GNU Project. Keywords: music notation typesetting midi fonts engraving Author: hanwen@cs.uu.nl (Han-Wen Nienhuys) janneke@gnu.org (Jan Nieuwenhuizen) Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys) Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert - 1000k lilypond-1.2.14.tar.gz + 1000k lilypond-1.2.15.tar.gz Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/ - 1000k lilypond-1.2.14.tar.gz + 1000k lilypond-1.2.15.tar.gz Copying-policy: GPL End diff --git a/make/out/lilypond.spec b/make/out/lilypond.spec index 50e15ffa17..7105c3e1f6 100644 --- a/make/out/lilypond.spec +++ b/make/out/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 1.2.14 +Version: 1.2.15 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.2.14.tar.gz +Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.2.15.tar.gz Summary: A program for printing sheet music. URL: http://www.cs.uu.nl/~hanwen/lilypond Packager: Han-Wen Nienhuys @@ -13,19 +13,14 @@ Prereq: tetex %description -LilyPond is a music typesetter. It produces beautiful sheet music -using a high level description file as input. LilyPond is part of -the GNU Project. %package documentation Summary: Prebuilt website containing all LilyPond documentation. Group: Applications/Publishing +# BuildArchitectures: noarch %description documentation -LilyPond is a music typesetter. It produces beautiful sheet music -using a high level description file as input. LilyPond is part of -the GNU Project. The documentation package is rather big, due to the many pictures and different documentation formats. It is really a rip-off from the @@ -63,10 +58,10 @@ cp buildscripts/out/lilypond-login $RPM_BUILD_ROOT/etc/profile.d/lilypond.csh #%install documentation #line 63: second %install # again, make sure that main package installs even if doco fails -mkdir -p htmldocs -tar -C htmldocs -xzf out/htmldoc.tar.gz +mkdir -p htmldocs/out +tar -C htmldocs -xzf out/htmldoc.tar.gz || true mkdir -p out/examples/ -tar -cf - input/ | tar -C out/examples/ -xf- +tar -cf - input/ | tar -C out/examples/ -xf- || true %post diff --git a/make/toplevel.make.in b/make/toplevel.make.in index 9dce8fb503..a311af2b92 100644 --- a/make/toplevel.make.in +++ b/make/toplevel.make.in @@ -9,14 +9,13 @@ depth = . # descent order into subdirectories: # SUBDIRS = scripts buildscripts flower lib lily mf midi2ly po debian \ - Documentation ly input tex make mutopia test intl stepmake\ + Documentation ly input tex make mutopia intl stepmake\ ps scm # SCRIPTS = configure aclocal.m4 -README_FILES = DEDICATION ANNOUNCE-0.1 ANNOUNCE-1.0 ANNOUNCE-1.2 \ - COPYING NEWS-0.1 NEWS-1.0 NEWS-0.0 NEWS-1.1 NEWS TODO AIMS CHANGES -README_TXT_FILES = README.txt AUTHORS.txt INSTALL.txt +README_FILES = DEDICATION COPYING NEWS TODO CHANGES +README_TXT_FILES = README.txt INSTALL.txt IN_FILES := $(wildcard *.in) EXTRA_DIST_FILES = dstreamrc mudela-mode.el vimrc VERSION $(README_FILES) $(SCRIPTS) $(IN_FILES) NON_ESSENTIAL_DIST_FILES = $(README_TXT_FILES) diff --git a/mutopia/N.W.Gade/README b/mutopia/N.W.Gade/README index fbffbfc7e5..dbd16551f6 100644 --- a/mutopia/N.W.Gade/README +++ b/mutopia/N.W.Gade/README @@ -11,13 +11,16 @@ The piece was performed in Ludvika and March 13-14, 1999, by Bergslagens Kammarsymfoniker conducted by Ola Karlsson. +The piece is for a small symphony orchestra with (using standard +notation for orchestral settings): 1121-2200-10-strings + Christian Mondrup has provided the following background on the piece: It was composed 1850 as a ouverture for the comedy "Imellem -Fjeldene" by the danish poet Carsten Hauch. In the Andante +Fjeldene" by the Danish poet Carsten Hauch. In the Andante introduction, Gade uses a melody from the collection ``Norske Folkesagn og Melodier'' (``Norwegian folksongs and melodies'') -by the danish composer A.P. Bergreen. The song has a norwegian +by the Danish composer A.P. Bergreen. The song has a Norwegian text ``Heimreise fraa Sæteren'' by Edvard Storm. The second theme of the Allegro part might very well come from the same collection, namely the song ``Saag du nokke Kjærringa mi''. diff --git a/mutopia/N.W.Gade/brass.ly b/mutopia/N.W.Gade/brass.ly index 9094208b4a..34deb5ed7c 100644 --- a/mutopia/N.W.Gade/brass.ly +++ b/mutopia/N.W.Gade/brass.ly @@ -203,13 +203,13 @@ R2 | e4 \fz r } -corIhelp=\notes\relative c''' { +corIcue=\notes\relative c''' { \key c; \tiny s2.*32 | s2*33 | \stemup -r4 r8 [g16^"oboe" \p ( a ] | +r4 r8 [g16^"oboe" ( a ] | [ ) g8-. fis16 ( g ][ ) fis8-. f16 ( g ] | [ ) f8-. e16 ( f ] ) e8-. s | \stemboth s2*66 | @@ -219,7 +219,7 @@ s2*66 | ) e4 r | } -corIIhelp=\notes\relative c'' { +corIIcue=\notes\relative c'' { \key c; \tiny @@ -517,7 +517,7 @@ R2 | g4 \fz r } -trpIhelp=\notes\relative c'' { +trpIcue=\notes\relative c'' { \tiny s2.*32 | @@ -545,7 +545,7 @@ r4^"Flauto" r8 [c'16 ( d] | )bes8 [a16 ( bes ] ) a8 } -trpIIhelp=\notes\relative c'' { +trpIIcue=\notes\relative c'' { \tiny [c8.^"Oboe" ( d16] ) c2 | @@ -845,7 +845,7 @@ r2 | f4 \fz r } -timphelp=\notes\relative c' { +timpcue=\notes\relative c' { \tiny [c8.^"Oboe, \\okt" ( d16] ) c2 | diff --git a/mutopia/N.W.Gade/parts.ly b/mutopia/N.W.Gade/parts.ly index f9326fc155..d6181f7dd5 100644 --- a/mutopia/N.W.Gade/parts.ly +++ b/mutopia/N.W.Gade/parts.ly @@ -43,7 +43,7 @@ my_paper = \paper { \marks \flauto > - \context Voice = help \flautohelp + \context Voice = cue \flautocue > \header{ instrument = "Flauto"; @@ -64,7 +64,7 @@ my_paper = \paper { \marks \oboe > - \context Voice = help \oboehelp + \context Voice = cue \oboecue > \header{ instrument = "Oboe"; @@ -139,7 +139,7 @@ my_paper = \paper { \marks \corI > - \context Voice = help \corIhelp + \context Voice = cue \corIcue > \header{ instrument = "Corno I in F"; @@ -160,7 +160,7 @@ my_paper = \paper { \marks \corII > - \context Voice = help \corIIhelp + \context Voice = cue \corIIcue > \header{ instrument = "Corno II in F"; @@ -181,7 +181,7 @@ my_paper = \paper { \marks \trpI > - \context Voice = help \trpIhelp + \context Voice = cue \trpIcue > \header{ instrument = "Tromba I in B\\textflat"; @@ -202,7 +202,7 @@ my_paper = \paper { \marks \trpII > - \context Voice = help \trpIIhelp + \context Voice = cue \trpIIcue > \header{ instrument = "Tromba II in B\\textflat"; @@ -223,7 +223,7 @@ my_paper = \paper { \marks \timpani > - \context Voice = help \timphelp + \context Voice = cue \timpcue > \header{ instrument = "Timpani \& Triangolo"; diff --git a/mutopia/N.W.Gade/score.ly b/mutopia/N.W.Gade/score.ly index 9daff0680a..7680cffced 100644 --- a/mutopia/N.W.Gade/score.ly +++ b/mutopia/N.W.Gade/score.ly @@ -135,8 +135,7 @@ copyright = "Mats Bengtsson, 1999. Free circulation permitted and " + markScriptPadding = "20.0"; } \translator { -% \HaraKiriStaffContext % Gives lost bar lines and misplaced marks!! - \StaffContext + \HaraKiriStaffContext \consists "Staff_margin_engraver"; marginScriptPadding = "15.0"; dynamicPadding = 3.0; diff --git a/mutopia/N.W.Gade/strings.ly b/mutopia/N.W.Gade/strings.ly index 8df8e869f5..0e17a3a0dd 100644 --- a/mutopia/N.W.Gade/strings.ly +++ b/mutopia/N.W.Gade/strings.ly @@ -566,7 +566,7 @@ vla=\notes\relative c' { \property Staff."midiInstrument" = "viola" [c8. \f ( d16 ] ) c2_"dim." | -\context Staff <{\voiceone s4 c2 | +\context Staff <{\voiceone [c8. d16 ] c2 | c2. ~ | c2. ~ | c2. ~ | diff --git a/mutopia/N.W.Gade/wood.ly b/mutopia/N.W.Gade/wood.ly index 0221e01cc5..84a5062b90 100644 --- a/mutopia/N.W.Gade/wood.ly +++ b/mutopia/N.W.Gade/wood.ly @@ -471,7 +471,7 @@ fis \> ~ | % cresc. added \! fis4 r | % dim. added R2*4 | e'2 \fz \> ( | -) \! fis,4 r | +) fis,4 \! r | b2 \> ( | ) \! ais4 r | fis2 \pp \< ~ | @@ -480,7 +480,7 @@ fis \> ~ | \! fis4 r | R2*4 | e'2 \fz \> ( | -) \! fis,4 r | +) fis,4 \! r | e'2 \p ( | ) ais, | R2*2 | @@ -902,7 +902,7 @@ e2 \p \< ~ | \! e \< ~ | \! e \> | \grace d'8 ( ) \! f2 \fz \> ( | -) \! e4. r8 | +) e4. \! r8 | f,2 \> ( ( | [ ) \! e8 d c ) b ] | a2 \pp \< ~ | @@ -914,7 +914,7 @@ e ~ | e ~ | e | \grace d'8 ( ) f2 \fz \> ( | -) \! e4. r8 | +) e4. \! r8 | f,2 \p ( | ) e4 r | f'2-> ( | @@ -1033,7 +1033,7 @@ f ( | ) c'4 \fz r } -oboehelp=\notes\relative c'' { +oboecue=\notes\relative c'' { \tiny s2.*32 | @@ -1045,7 +1045,7 @@ s2*106 | [e c ) d] s | } -flautohelp=\notes\relative c'' { +flautocue=\notes\relative c'' { \tiny s2.*32 | diff --git a/scm/lily.scm b/scm/lily.scm index 9c9ae7a896..8eafa4922a 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -267,7 +267,10 @@ (define (lily-def key val) (string-append - "\\def\\" (output-tex-string key) "{" (output-tex-string val) "}\n")) + "\\def\\" +; (regexp-substitute/global #f "_" (output-tex-string key) 'pre "X" 'post) + (output-tex-string key) + "{" (output-tex-string val) "}\n")) (define (number->dim x) (string-append diff --git a/test/GNUmakefile b/test/GNUmakefile deleted file mode 100644 index f4392fb708..0000000000 --- a/test/GNUmakefile +++ /dev/null @@ -1,17 +0,0 @@ -# title makefile for test -# test/Makefile - -depth = .. - -NAME = lily-test -MODULE_NAME = lily-test - -MODULE_CXXFLAGS = -I$(depth)/flower/include -I$(depth)/flower -I$(depth)/lily/include -I$(depth)/lily -STEPMAKE_TEMPLATES=c++ - -include $(depth)/make/stepmake.make - -# default: $(EXECUTABLE) - -# include $(stepdir)/Executable.make - diff --git a/test/bow.cc b/test/bow.cc deleted file mode 100644 index 418538880e..0000000000 --- a/test/bow.cc +++ /dev/null @@ -1,165 +0,0 @@ -// vim:sw=2 makeprg=g++\ -g\ bow.cc\ -o\ bow -#include -#define PT -// #define STAFFHEIGHT 16.0 -#define STAFFHEIGHT 20.0 - -#define UP 1 -#define DOWN (-1) - -// mmm -#define STANDALONE - -#include - -typedef void *Paper_def; - -bool experimental_features_global_b = true; -//bool experimental_features_global_b = false; - -#include "bezier.hh" - -#if 0 -#include "offset.cc" -#include "interval.cc" -#endif - -#include "misc.cc" -#include "bezier.cc" - -struct Point -{ - Real x, y; -}; - -void -out (Bezier_bow& b) -{ - cout << "save dx,dy,x,y;\n"; - for (int i = 0; i < 4; i++) - cout << "z" << i + 1 << " = (" << b.control_[i].x () - << ", " << b.control_[i].y () << ");\n"; - for (int i = 1; i < 3; i++) - cout << "z" << i + 4 << " = (" << b.return_[i].x () - << ", " << b.return_[i].y () << ");\n"; -#if 0 - cout << "pickup pencircle scaled 0.5pt#;\n"; - cout << "draw z2--z3; draw (50,0)-- 0.5[z2,z3];\n"; -#endif - cout << "pickup pencircle scaled 4pt#;\n"; - for (int i = 0; i < 4; i++) - cout << "drawdot z" << i + 1 << ";\n"; - cout << "path boogje;\n"; -#if 0 - cout << "pickup pencircle scaled 0.4pt#;\n"; - cout << "boogje=z1..controls z2 and z3..z4..controls z5 and z6..cycle;\n"; - cout << "filldraw boogje;\n"; -#else - cout << "pickup pencircle scaled 1.6pt#;\n"; - cout << "boogje=z1..controls z2 and z3..z4;\n"; - cout << "draw boogje;\n"; - cout << "pickup pencircle scaled 0.4pt#;\n"; - cout << "boogje:=z4..controls z5 and z6..z1;\n"; - cout << "draw boogje;\n"; -#endif - cout << "showit; shipit;clearit;" << endl; -} - -void -bow (Point* points, int n, int d) -{ - Array notes; - for (int i = 0; i < n; i++) - notes.push (Offset (points[i].x, points[i].y)); -#if 1 - cout << "pickup pencircle scaled 8pt#;\n"; -#else - cout << "pickup pencircle scaled 2pt#;\n"; -#endif - for (int i = 0; i < n; i++) - cout << "drawdot (" << notes[i].x () << ", " << notes[i].y () << ");\n"; - Bezier_bow b (0); - b.set (notes, d); - b.calc (); - out (b); - return; -} - -int -main () -{ - //cout.unsetf(ios::scientific); - cout.setf(ios::fixed); -#if 1 - bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,0, 100,1 }, 6, 1); - bow ((Point[6]){ 0,0, 20,0, 40,30, 60,30, 80,0, 100,1 }, 6, 1); - bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,10, 100,1 }, 6, 1); - bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,40, 100,1 }, 6, 1); - bow ((Point[6]){ 0,0, 20,0, 40,0, 60,40, 80,0, 100,1 }, 6, 1); - bow ((Point[6]){ 0,10, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, 1); - bow ((Point[6]){ 0,10, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, -1); - bow ((Point[6]){ 0,10, 20,20, 40,0, 60,40, 80,20, 100,100 }, 6, -1); - bow ((Point[9]){ 0,0, 20,0, 40,-80, 60,0, 80,0, 100,0, 120,0, 140,0, 160,-1 }, 9, -1); - bow ((Point[9]){ 0,0, 40,0, 80,180, 120,0, 160,0, 200,0, 240,0, 280,0, 320,1 }, 9, 1); - bow ((Point[9]){ - {0, 0}, - {19.10645980317711, 1}, - {29.402919606354207, 28}, - {55.389379409531308, 1}, - {73.530839212708514, 1}, - {91.672299015885727, 1}, - {111.35901367452229, 1}, - {131.04572833315891, 1}, - {145.76744299179552, 0} - }, - 9, 1); - bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,0, 100,40 }, 6, 1); - bow ((Point[2]){ 0,0, 20,0 }, 2, 1); - bow ((Point[2]){ 0,0, 20,-10 }, 2, 1); - bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,0, 100,100 }, 6, 1); - - bow ((Point[6]){ 0,0, 20,-10, 40,20, 60,-20, 80,20, 100,0 }, 6, 1); - bow ((Point[6]){ 0,0, 20,-10, 40,20, 60,-20, 80,20, 100,0 }, 6, -1); - bow ((Point[6]){ 0,0, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, 1); - bow ((Point[6]){ 0,0, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, -1); - bow ((Point[6]){ 0,0, 20,20, 40,0, 60,40, 80,20, 100,100 }, 6, -1); - - bow ((Point[6]){ 0,-10, 20,-20, 40,0, 60,-40, 80,-20, 100,-50 }, 6, 1); - - bow ((Point[6]){ 0,10, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, -1); -#endif - -#if 1 - //clipping - - bow ((Point[6]){ 0,0, 20,60, 40,0, 60,0, 80,0, 100,1 }, 6, 1); - - bow ((Point[6]){ 0,1, 20,0, 40,0, 60,0, 80,60, 100,0 }, 6, 1); - bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,140, 100,100 }, 6, 1); - bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,20, 100,100 }, 6, -1); - bow ((Point[6]){ 0,0, 20,-20, 40,-40, 60,-60, 80,-20, 100,-100 }, 6, 1); - bow ((Point[6]){ 0,0, 20,-20, 40,-40, 60,-60, 80,-140, 100,-100 }, 6, -1); - bow ((Point[7]){ 0,0, 20,40, 100,0, 150,0, 200,0, 280,40, 300,0 }, 7, 1); - bow ((Point[7]){ 0,0, 20,-40, 100,0, 150,0, 200,0, 280,-40, 300,0 }, 7, -1); - bow ((Point[7]){ 0,20, 20,40, 100,0, 150,0, 200,0, 280,40, 300,20 }, 7, 1); - bow ((Point[3]){ 0,0, 10,10, 20,-20 }, 3, 1); - - bow ((Point[4]){ 0,0, 33,100, 75,0, 100,100 }, 4, -1); - bow ((Point[4]){ 0,0, 33,-100, 75,0, 100,-100 }, 4, 1); -#endif - -#if 1 - // infeasible - - bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,140, 100,100 }, 6, 1); - bow ((Point[6]){ 0,0, 20,-40, 40,0, 60,20, 80,20, 100,40 }, 6, -1); - bow ((Point[6]){ 0,0, 20,-20, 40,-20, 60,-20, 80,-80, 100,-40 }, 6, -1); - bow ((Point[6]){ 0,0, 20,-20, 40,-40, 60,-60, 80,-140, 100,-100 }, 6, -1); - bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,140, 100,100 }, 6, 1); -#endif - - cout << "\\end" << endl; - - return 0; -} - diff --git a/test/hash.cc b/test/hash.cc deleted file mode 100644 index ee67572b76..0000000000 --- a/test/hash.cc +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include -#include "dictionary-iter.hh" - - - -main () -{ - Dictionary *dict = new Dictionary; - - char s[1000]; - - dict->elem("foo") = "bar"; - dict->elem("bla") = "ba"; - dict->elem("blo") = "bar"; - - while (gets (s)) - { - String str (s); - - int l = str.length_i (); - - dict->elem (str.left_str (l/2)) = str.right_str (l/2); - } - - int i=1000; - while (i--) - { - Dictionary *dict2=new Dictionary (*dict); - delete dict; - dict = dict2; - } - - for (Dictionary_iter i (*dict); i.ok (); i++) - { - cout << i.key () << " == " << i.val () << endl; - cout << "elem_b: " << dict->elem_b (i.key ()) << ", key " << i.key () << " val " << dict->elem (i.key ()) < -#define PT -// #define STAFFHEIGHT 16.0 -#define STAFFHEIGHT 20.0 - -#define UP 1 -#define DOWN (-1) - -// mmm -#define STANDALONE - -#include - -typedef void *Paper_def; - -bool experimental_features_global_b = true; - -#include "misc.cc" - -int -main () -{ - //cout.unsetf(ios::scientific); - cout.setf(ios::fixed); - - Array a; - a.push (3.4); - a.push (3.9); - Interval iv; - - iv = quantise_iv (a, 4, 3.5); - cout << "iv: " << iv.min () << ", " << iv.max () << endl; - - iv = quantise_iv (a, 4, -1.5); - cout << "iv: " << iv.min () << ", " << iv.max () << endl; - - iv = quantise_iv (a, 4, -7.5); - cout << "iv: " << iv.min () << ", " << iv.max () << endl; - - iv = quantise_iv (a, 4, 3.4); - cout << "iv: " << iv.min () << ", " << iv.max () << endl; - - iv = quantise_iv (a, 4, 3.9); - cout << "iv: " << iv.min () << ", " << iv.max () << endl; - - cout << "\\end" << endl; - - return 0; -} - diff --git a/tex/lily-ps-defs.tex b/tex/lily-ps-defs.tex index da9907c536..084d51ce55 100644 --- a/tex/lily-ps-defs.tex +++ b/tex/lily-ps-defs.tex @@ -8,13 +8,7 @@ % note the ! sign. See dvips.info for details. % -% Use of -% /foo { operatorname } bind def -% -% ``compiles'' operatorname binding in the body of foo, making -% the code faster, and more reliable (less flexible) - - +% ARG. Fix brackets \def\turnOnPostScript{% % This sets CTM so that you get to the currentpoint % by executing a 0 0 moveto @@ -23,7 +17,7 @@ } % \special{! -/stafflinethickness \mudelapaperstaffline\space def +/stafflinethickness \mudelapaperstafflinethickness\space def /interline \mudelapaperinterline\space def interline 3 div /bracket_b exch def interline 2 mul /bracket_w exch def