From: Han-Wen Nienhuys Date: Sat, 7 Sep 2002 13:20:47 +0000 (+0000) Subject: * ly/performer-init.ly (ScoreContext): add Timing alias X-Git-Tag: release/1.6.3~39 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=e2e2ace2fdf8b0484f59d98720a5129ce91ee8fd;p=lilypond.git * ly/performer-init.ly (ScoreContext): add Timing alias * lily/translator-def.cc (Translator_def): copy alias list too. * lily/stem.cc (height): add half beam thickness for beamed stems. This fixes tuplet bracket vertical offsets on beams. * lily/text-spanner-engraver.cc (stop_translation_timestep): small cleanups; only hang spanner on paper-columns if there are no note-columns to hang on. Also hang finished spanner on the last note. * lily/tuplet-bracket.cc (calc_position_and_height): only quantize inside staff. --- diff --git a/CHANGES b/CHANGES deleted file mode 100644 index 5f42581186..0000000000 --- a/CHANGES +++ /dev/null @@ -1,829 +0,0 @@ -1.5.23 -====== - -* Bugfix: be anal about slur dimensions. - -* Bugfix: insert extra margin around pixmaps. - -* lilypond-book: magnification option for EPS - -1.5.22.jcn1 -=========== - -* Resurrected experimental sketch output, now with dispatch. - -* Bugfix: prefix directory defaults to DIR_DATADIR if not defined. - -* Rune: more reliable repeat dots (WARNING: FONT CHANGED) - -1.5.22.hwn1 -=========== - -* Dashed slur bugfix. - -* GUILE 1.4 compatibility. - - - -1.5.22 -====== - -1.5.21.hwn1 -=========== - -* Crop EPS files before rendering in lilypond book. This makes make web -a lot faster. - -* Added links to internals documentation - -* Small dimcache (darn gcc-2.95) bugfixes. - -* Implemented Engraver::top_engraver (). - -* Completion_heads_engraver: engrave tied notes across bar lines -automatically. Related changes: - - - duration-log of Note head can be larger than 2 - - - make public class Grob_pitch_tuple - -* Make old spacing engine default again. The new one is still rather -sucky. - -1.5.21 -====== -1.5.20.jcn1 -=========== - -* Fixed direct PostScript output, and changed default fonts. - -* Bugfix: automaticMelismata in refman (huh, or should lily be changed?) - -* pktrace: - - cp mf/out/feta20.* $HOME/usr/src/sketch-0.7.8/Resources/Fontmetrics - echo 'TeX-feta20,feta20,Roman,-gnu-feta20-medium-r-normal,adobe-fontspec\ific,feta20' >> $HOME/usr/src/sketch-0.7.8/Resources/Fontmetrics/std.sfd - - -1.5.3.lec1 -========== -abc2ly fixes: - - fix to Q: support - partial fix for tuplet parsing - fix for blank first T: line - escape "'s in header lines - fix for dotted breve in whole note duration - M:none no longer attempts to insert "\time none" - - -1.5.20.uu1 -========== - -* etf2ly robustness fixes - -* Rewrote outputting backend. Now uses GUILE modules. - -* Line breaking bugfix. - -* Bugfix: Unfolded_repeat_iterator::add_repeat_command(). - -1.5.20 -====== - -1.5.19.jcn3 -=========== - -* Sketch output: - - - Sketch uses feta font. - - Fix to linewidth and feta fontsize. - - mf-to-table: write dummy values in afm to make sketch happy. - - Fixes to glyphs: rectangles beziers work now. - - Bugfix: sketch.scm: use primitive-eval. - -* Sketch and feta Type1 fonts: - - textrace: - wget http://www.inf.bme.hu/~pts/textrace-latest.tar.gz - tar xzf textrace-latest.tar.gz - (cd autotrace-0.27ap; ./configure; make) - ./traceall.sh feta20 feta20.pfb $HOME/usr/src/lilypond/mf/out - - - copy mf/out/feta20.* to sketch/Resources/Fontmetrics: - - - append to sketch/Resources/Fontmetrics/std.sfd: - echo 'TeX-feta20,feta20,Roman,-gnu-feta20-medium-r-normal,adobe-fontspecific,feta20' >> $HOME/usr/src/sketch/sketch/Resources/Fontmetrics/std.sfd - - - Hmm, then find that - - + Sketch accesses characters by name, ie, the -clefs name characters have in default text fonts. Luckily, textrace - mangles the feta names too. Sadly, textrace chooses different names - for characters > 128. - - + Textrace mangles font name by prepending `TeX-'. Doesn't seem to - pose a big problem; we'll have to pefix `TeX-' to feta fonts. - - + Sadly, only the sketch-0.7.x is happy with the feta type1 font, but - printing is not yet implemented? - - * Remove modules directory (again?). - - -1.5.18.moh1 -=========== - -* Further work on more flexible control of lyric alignment. - - new properties "alignment", "ignore-length-mismatch", "begin-alignment" a\nd "end-alignment" to control non-centered lyric alignment - - -1.5.19.hjj1 -=========== - -* Added \portato. - -1.5.18.jcn1 -=========== - -* Moved python modules to ./python. - -* Better python module stepmake support. - -* Bugfix ly2dvi etc: LILYPONDPREFIX should override datadir. - -1.5.18.hwn2 -=========== - -* Put lilylib back into ly2dvi - -* Cache symbols for {get,set}_{grob,music}_property and -{get,set}_property. Speedup: about 20 percent. - -* Remove C++ version of midi2ly - -* Inline Grob::parent_l (Axis), String::String() speedup 2 % - -* First try at Sketch (sketch.sourceforge.net) output. - - -1.5.18.rz1 -========== - -* subdivideBeams fix - setting property right after beam definition no - longer affects that beam. - -* Minor docu updates, accidental cleanups and example updates - -* Added Accidental grob properties paren-cautionaries and - cautionary-size controlling the appearance of cautionary accidentals - -1.5.18 -====== -1.5.17.jcn6 - aka: `pgwit! Ah, dacht dat-i zo wel aardig was.' -=========== - -* Some more hacking at midi2ly.py: - - options and stuff: moved to library for ly2dvi, midi2ly, mup2ly, - update-lily - - handle keys and note names - - simple quantising - - handle tuplets and silly durations - - guess clef - - don't include empty staffs in score - - print relative pitches by default - - don't repeat duration by default - - bugfix: allow 8th notes too - - include new version of input/test/midi-scales.ly - - added barchecks + fix - - bugfix for relative mode - -* Shorter MIDI creation texts. - -* Bugfix: Key_change_req::transpose: don't deliver reversed list. - -* Bugfix: Key_performer::create_audio_elements: transpose list to -`do', before determining tonality. - -1.4.8.moh1 -========== - -* new property "end-alignment" to control non-centered lyric alignment - -1.5.17.hwn1 -=========== - -* Be quicker in Grob::handle_broken_dependencies(). - -* --strict option for abc2ly, exit if an error is found. - -* GUILE 1.3.4 fix. - - -1.5.17 -====== - -1.5.16.hjj2 -=========== - -* Emacs-mode: Inserting tags - -* Enable python2.1/Python.h - -1.5.16.hwn1 -=========== - -* Add unfold-repeats function (Rune Zedeler!) to standard init SCM file. - -* Bugfix: spacing is no longer confused by coupled clefs, where one of the -clefs is loose, and the other not. - -* Robustness fix for Slur. Don't crash if attachment not set. - -* Arpeggios can now have arrows on the top or bottom to determine -their direction. (MF code by Chris Jackson) - -* Symbol cache bugfix in system-start-delimiter.cc -- may switch -symbol cache off for gcc 2.96? - -* MikTeX PDF detection bugfix (Mats Bengtsson) - -* Some more random hacking at midi2ly.py. (jcn1) - -* Inline unsmob_XXX functions. Speedup of 6% on wtk1-fugue2. - -1.5.15.jcn1 -=========== - -* Fixes for latest guile cvs. - -* Add --enable-optimising flag to configure (Huh?). - -* Only inline string utlis when optimising. - -* Compile fix. - -1.5.15.rz1 -========== - -* added property autoReminders, automatically creating reminder - accidentals. - major changes to accidental-engraver. - -1.5.15.hwn1 -=========== - -* Junk translator-description.scm - -* Make Repeated_music use 'element and 'elements in stead of 'body and -'alternatives. Associated changes in parser and music-sequence.cc. - -* Change Part_combine_music and Lyric_combine_music to use 'elements -music property. - -* Porrectus patch (Juergen Reuter) - - - Rewrote code for vaticana style porrectus grob; the solid shape is - now drawn as a single bezier sandwich rather than composed from a - couple of misused slurs. Looks now much nicer. - - - Added code to forbid line-breaking inbetween a porrectus - (preliminary; to be moved to ligature engraver framework). - - - Added auto-properties property for automatic determination of grob - properties add-stem and stem-direction from musical context. - - - Small clean-ups. - - -1.5.14.jcn6 -=========== - -* Some more random hacking at midi2ly.py. - -* Slightly better doco for r, s and \skip, with examples. - -* Bugfixes: add-html-footer.py and @MAILADDRESS@. - -* Some website related fixes (thanks Tiggr). - -* Ugly hack in add-html-footer for disabling tutorial and refman links -in sidebar. - -* Guile > 1.4 compilation fixes. - -* Website bugfix: mailto: (thanks David Boersma). - -1.5.14.hwn1 -=========== - -* Rename: Local_key_engraver to Accidental_engraver - -* Add documentation for accidentals grob property. - -* Don't make double accidentals even if two of the same notes are -specified. (Thanks Rune) - -* Search all staff-bars for non-empty barline to determine type. This -fixes span-bars with the lowest staff hara-kiried. (Thanks Rune) - - -1.5.14.rz1 -========== - -* Less buggy beam-split - -* Added subdivideBeams, subdividing beams on beats - -1.5.14 -====== - -1.5.13.hwn2 -=========== - -* Bugfix: revert font-relative-size for grace Accidentals - -* Bugfix: hara kiri'd piano staffs doesn't take space anymore. - -* Bugfix: reinstate rest-collisions. - -* Bugfix: key items have the c0 position again. - -* Make \property Voice.GrobName = \turnOff work again. - -* More intelligent symbol-cache, in less code. Turned off by default, doesn't -work with -O2 yet. - -* Documentation fixes: change documentation of Moment and make-moment, -add Translator::{name,description} - -* Junk STL implementation of Scheme_hash_table in favor of GUILE -hashtables with automatic resizing. - - -1.5.12.jcn2 -=========== - -* half-baken --with-kpathsea configuration fix. - -* ly2dvi: add `.' to TEXINPUTS to catch broken TEXINPUTS settings. - -* guile-1.4 compile fix. - -1.5.12.hwn1 -=========== - -* Move engraver descriptions into the C code. They are accessible -from Scheme. Grand rehacking to make stuff work again. - -* Precompute which engravers are eligible to acknowledge a certain -type of grob. Speedup: approx 10 % on interpretation phase. - - -1.5.12 -====== - -1.5.11.jcn1 -=========== - -* Add -p flag to package-diff.py's diff invocation, to show changed function. - -* Add configure checks for python headers. - -* Make midi module. - -1.5.11.hwn1 -=========== - -* Allow breaks at measures starting with grace notes. - -* Bugfix: don't give up when there is one entirely unspaceable -measure/line. - -* Midi module: many bugfixes. - -* midi2ly python blurble. - - -1.5.11 -====== - -1.5.10.jcn3 -=========== - -* include python midi parser. - -* stepmake updates. - -* add .cvsignore patterns for making patches the standard, manual way. - -* midi2ly: support chords, duration conversion rewrite. - -* parser.yy: Guile > 1.4 compilation fix; scm_unprotect_object is deprecated. - -1.5.10.hwn1 -=========== - -* Rational bugfix. - -* Cleaned up definitions of SystemStartDelimiter - -* WTK fix. - -* Porrectus patch (Juergen Reuter): - -- Syntax change: \porrectus -> \~ -- New porrectus properties: porrectus-width, line-thickness. -- Bugfix: left<->right confusion in porrectus-engraver.cc. -- Bugfix: Box dimensions for horizontal slope molecule in porrectus.cc. -- Enhanced mensural style porrectus shape, considering optical - illusion in vertical endings due to slope. Simplified drawing. -- Code clean-up. - -1.5.10 -====== - -1.5.9.hjj2 -========== -* Emacs-mode: Keyboard shortcuts, separated identifiers from keywords -and spacing not necessary in font-locking. - -1.5.9.jcn3 -========== - -* add-html-footer.py: use html as fallback title for pages -where @WEB-TITLE@ is not defined. - -* Bugfix: stepmake: don't go building executables all over the place, -if NAME is set in environment. Some cleanups. - -* add-html-footer.py: remove href to self. Substitute @at-variables@ -defined in html comments. Any occurrence of - - <!-- @foo@=bar --> - -in the html page, will subsequently substitute any occurrence of @foo@ -in the same html page with `bar'. - -* Bugfix: update-lily: remove unprotected gettext.py include. - -* po update. - -* windows doc update. - -1.5.9.hwn3 -========== - -* Optimizations: - - speed up Rational::operator+= - - speed up Rational::compare () - - don't store origins if point-and-click not set. - -* \figures input mode: \figures { <4 6+> <3- 5>2. } - -* Obscure bugfix: call kpsewhich with --format for mfplain. - -* Don't put volta bracket on top of following note (vertically). - -* Collision fixes. - -* Crude figured bass support (supports rests as well, now) - -* Bugfix: various collision issues, updated regtest example. - -* Porrectus support (Juergen Reuter) - -1.5.9 -===== - -1.5.8.uu1 -========= - -* Mensural rests (Juergen Reuter) - -* Swedish translation (Thanks to the translation project) - -* Bugfix: down 8th flag restored. - -* Bugfix: span-bars and hara-kiri. - -* More advanced collisions: handle meshed chords as well. - -1.5.8.jcn1 -========== - -* Add mktextfm wrapper for windows (thanks Mats). - -1.5.8.hjj1 -========== - -* Emacs-mode: new keywords, reserved words, notenames and brackets are -font-lock-keywords; implementation encourages spacing/indenting. - - -1.5.8 -===== -1.5.7.hwn1 -========== - -* reinclude input/bugs/*.ly - -* Mensural flags (Juergen Reuter) - -* Fixed problem with hanging Xdvi from redhat 7.x. See also -http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=52089 - -* Bugfix: don't crash if kpse_find_file returns 0. - -* Bugfix: don't allocate \outputscale for every file. - -* Bugfix: mixing different rhythms on one staff doesn't muck up the -spacing that much. - -1.5.7.hjj2 -========== - -* Add PS-compilation, PS-viewing and MIDI-play in LilyPond --Emacs-mode. (Heikki Johannes Junes). - -* Add common finnish names for notes - - -1.5.6.jcn2 -========= - -* Use Cygwin included Python; drop Windows Python and workarounds. - -* Include make/lilypond.mandrake.spec (unchecked!) and README.mandrake. - -* Comment out two non existing examples in regression test, add one -missing from 1.5.5 distribution. - -* Revert silly grace-with-braces stuff in tutorial. - -* Add short crescendo bug to input/bugs. - -* Update and bit more verbose download instructions in INSTALL, -fix some links on ftp.lilypond.org. - - -1.5.6.hwn1 -========== - -* Grace note bugfixes. - -* Move staff-adjacency detection (for the spacing engine) to -Separating_group_spanner. - -* Loose column support: clef changes, key changes may be folded underneath -notes in a different staff. See input/regression/spacing-folded-clef.ly. -Changes were made to - - - Separating_group_spanner: decide which columns are loose - - - Simple_spacer, New_spacing_spanner: only look at non-loose columns. - - - Line_of_score: set horizontal positions for loose columns. - -1.5.6 -===== - -1.4.6.mb1 -========= - -* Allow for duplicated articulation scripts with different direction. - -* Added new ornaments: \upmordent, \downmordent, \pralldown, \prallup, - \lineprall, \thumb, \comma (to be used with scriptHorizontal = ##t), - see also input/test/trill.ly. [WARNING: FONT UPDATE!] - -* Bug fix: staccato dot placement. - -1.5.5.jr1 -========= - -* recent ancient-font.ly development branches manually merged and - updated; - -* added enhanced mensural minima/fusa noteheads (30 degrees rhomb - style); the former 45 degrees quadratic shapes are now available - under notehead style "neo_mensural"; [WARNING: FONT UPDATE] - -* minor ancient font corrections (in particular, enhanced set_char_box() - arguments). - - -1.5.5.jcn2 -========== - -* input/bugs: - - Autogenerate bugs document from all .ly's. - - Add texidoc to lots of examples. - - Junk or move fixed examples to regression test. - - Move examples that crash lilypond to input/no-notation. - - Update examples. - -1.5.5.hwn1 -========== - -* Grace property fixes. - -* More grace nesting bugfixes. - -1.5.5 -===== - -1.5.4.jcn2 -========== - -* Spelling fixes, notably staffs->staves, except for ChangeLogs. - -* Removed `Default' from accidental comment names. - -* Compile fixes. - -* Fixed off by one error for point and click. - -* Website fixes, found bug in grace note stem lengths. - -1.5.4.hwn1 -========== - -* Ancient font update [WARNING FONTS CHANGED!] (Juergen Reuter) - -* New_spacing_spanner: revised spacing generation. - -* Default neutral direction set to down. - -* Junk hash table from flowerlib - -* Bugfix: grace nesting error - -* Bugfix: don't try schedule next bar when were on a grace moment. - -* Bugfix: set measurePosition especially for music starting with -grace. - -1.5.3.hwn1 -========== - -* midi2ly bugfixes: don't print ';' in .ly output. - -* small cleanup of input/bugs/ - -* bugfix: nested grace notes; added input/regression/grace-nest.ly - -* Bugfix: add double alterations to keyAccidentalOrder (Mats) - -* Fixes for PostScript beams and stems. - -1.5.2.hwn1 -========== - -* Starting pagenumber (Mark Hindley) - -* Ancient font patch (Juergen Reuter) [WARNING: FONT UPDATE!] - -* Bugfix: don't put grace beams on non grace notes, and vice versa. - -* etf2ly: - - miserable try at importing repeatbars and volta brackets; - - import articulation defs (IX tag) - - revamped file reading logic. Now much cleaner. - -* Experimental regular-spacing support: try to space regular runs of -notes equidistantly. - -1.5.2.jcn2 -========== - -* Flex is fixed in Debian/unstable. Update documentation accordingly. - -* Guile 1.3.4 compile fix. - -* Add trill line type, see input/test/trill.ly. - -* Dvips bugs workarounds: - - Draw filledbox in tex for now. Test ps code using - - lilypond -e '(define ps-testing 1)' - - - Extend stems only half way into beam. - -* Change order of includes in tex/lilyponddefs.tex so that feta font -can be used a little easier, like: - - title="TeX \fetachar\fetasharp" - -* Update stepmake/bin config.sub, config.guess. - -1.5.2 -===== - -1.5.1.hwn1 -========== - -* small bugfixes for grace-init.ly - -* Bugfix: don't mess up spacing when combining different tuplets. - -* Small bugfixes for lilypond-mode.el. - -* property-init.ly: bugfix for dot directions in polyphonic music. - -1.5.1.jcn3 -========== - -* Bugfix: text2html: escape entities inside <pre>. - -* Added some template .ly's for evaluation. - -* Make blot work without -fps too. - -* Use blot diameter for postscript beams and boxes. - -* Guile-1.5.0-cvs updates and Guile-1.4.x compatibility. - -* Beam knee fix. - -* Now really included lexer-gcc-3.0.patch. - -* Make Voice context accept Thread again; this fixes MIDI output for music -that uses Thread contexts. - -* Removed debug printing from chord-name.scm. - -1.5.0 -===== -1.5.0.jcn1 -========== - -* Added feature to ly2dvi to find feta pfa font files used in a -postscript file to make printing of direct postscript a bit easier: - - lilypond -fps input/trip.ly - cat $(ly2dvi -f trip.ps) trip.ps | lpr - -* Reincluded 1.4.3.jcn2. - -* Website fixes. - -* Ly2dvi now leaves .tex and .latex output if latex fails, and cleans -the temp dir if anything fails. - -* Fixes for windows scripts. - -1.5.0.uu1 -========= - -* Hara kiri and span-bar. - -* Junk old grace stuff. - -* Don't crash on grace notes in MIDI output. - - - -1.5.0 -===== - -* experimental grace notes: - - add grace timing to Moment - - hack to Sequential_music_iterator to use the correct timing for -the note before a grace - - change the implementation of \grace construct - - property set/unset (eg. font size) is done through startGraceMusic -and stopGraceMusic - - various engraver fixes to deal with the fact that the -main-time-moment may remain the same during several steps. - - Change column creation logic in score-engraver. - -* Bugfix: don't crash when \name not set in \translator block. - -* rename ly/*.ly to ly/*-init.ly (except language files) to avoid -name clashes - -* deprecate Property_engraver, add Font_size_engraver to Staff, Voice -and Thread. - -* Change mailing list address: *gnu-music*@gnu.org becomes -*lilypond*@gnu.org - -* Put span-bar lines only between the other barlines, not on top of -them (thanks to Juergen Reuter) - -1.4.4.jcn3 -========== - -TODO: look at other filledbox'es (stafflines and barlines don't match up). - -* Testing code off by default. On: -e "(define ps-testing 1)" -fps - -* Output via TeX/dvips still gives problems. Use direct postscript -output for real testing. - -* Beam and stem fixes: - - Stems drawn in PostScript (should do all filledbox'es in PS?). - - Fixes for draw_box and draw_beam PostScript routines. - - Stems reach to top (or bottom) of beam. - - Beam uses correct stem thickness (only right beams, left TODO). - - testing code in effect: only outlines are drawn. - diff --git a/ChangeLog b/ChangeLog index 45cb7f2e37..1c1019ec3a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2002-09-07 Han-Wen Nienhuys <hanwen@cs.uu.nl> + + * ly/performer-init.ly (ScoreContext): add Timing alias + + * lily/translator-def.cc (Translator_def): copy alias list too. + + * lily/stem.cc (height): add half beam thickness for beamed stems. + This fixes tuplet bracket vertical offsets on beams. + + * lily/text-spanner-engraver.cc (stop_translation_timestep): small + cleanups; only hang spanner on paper-columns if there are no + note-columns to hang on. Also hang finished spanner on the last + note. + + * lily/tuplet-bracket.cc (calc_position_and_height): only quantize + inside staff. + 2002-09-07 Rune Zedeler <rune@zedeler.dk> * scm/output-lib.scm: (default-bar-number-visibility) added diff --git a/Documentation/misc/CHANGES-1.5 b/Documentation/misc/CHANGES-1.5 new file mode 100644 index 0000000000..5f42581186 --- /dev/null +++ b/Documentation/misc/CHANGES-1.5 @@ -0,0 +1,829 @@ +1.5.23 +====== + +* Bugfix: be anal about slur dimensions. + +* Bugfix: insert extra margin around pixmaps. + +* lilypond-book: magnification option for EPS + +1.5.22.jcn1 +=========== + +* Resurrected experimental sketch output, now with dispatch. + +* Bugfix: prefix directory defaults to DIR_DATADIR if not defined. + +* Rune: more reliable repeat dots (WARNING: FONT CHANGED) + +1.5.22.hwn1 +=========== + +* Dashed slur bugfix. + +* GUILE 1.4 compatibility. + + + +1.5.22 +====== + +1.5.21.hwn1 +=========== + +* Crop EPS files before rendering in lilypond book. This makes make web +a lot faster. + +* Added links to internals documentation + +* Small dimcache (darn gcc-2.95) bugfixes. + +* Implemented Engraver::top_engraver (). + +* Completion_heads_engraver: engrave tied notes across bar lines +automatically. Related changes: + + - duration-log of Note head can be larger than 2 + + - make public class Grob_pitch_tuple + +* Make old spacing engine default again. The new one is still rather +sucky. + +1.5.21 +====== +1.5.20.jcn1 +=========== + +* Fixed direct PostScript output, and changed default fonts. + +* Bugfix: automaticMelismata in refman (huh, or should lily be changed?) + +* pktrace: + + cp mf/out/feta20.* $HOME/usr/src/sketch-0.7.8/Resources/Fontmetrics + echo 'TeX-feta20,feta20,Roman,-gnu-feta20-medium-r-normal,adobe-fontspec\ific,feta20' >> $HOME/usr/src/sketch-0.7.8/Resources/Fontmetrics/std.sfd + + +1.5.3.lec1 +========== +abc2ly fixes: + + fix to Q: support + partial fix for tuplet parsing + fix for blank first T: line + escape "'s in header lines + fix for dotted breve in whole note duration + M:none no longer attempts to insert "\time none" + + +1.5.20.uu1 +========== + +* etf2ly robustness fixes + +* Rewrote outputting backend. Now uses GUILE modules. + +* Line breaking bugfix. + +* Bugfix: Unfolded_repeat_iterator::add_repeat_command(). + +1.5.20 +====== + +1.5.19.jcn3 +=========== + +* Sketch output: + + - Sketch uses feta font. + - Fix to linewidth and feta fontsize. + - mf-to-table: write dummy values in afm to make sketch happy. + - Fixes to glyphs: rectangles beziers work now. + - Bugfix: sketch.scm: use primitive-eval. + +* Sketch and feta Type1 fonts: + - textrace: + wget http://www.inf.bme.hu/~pts/textrace-latest.tar.gz + tar xzf textrace-latest.tar.gz + (cd autotrace-0.27ap; ./configure; make) + ./traceall.sh feta20 feta20.pfb $HOME/usr/src/lilypond/mf/out + + - copy mf/out/feta20.* to sketch/Resources/Fontmetrics: + + - append to sketch/Resources/Fontmetrics/std.sfd: + echo 'TeX-feta20,feta20,Roman,-gnu-feta20-medium-r-normal,adobe-fontspecific,feta20' >> $HOME/usr/src/sketch/sketch/Resources/Fontmetrics/std.sfd + + - Hmm, then find that + + + Sketch accesses characters by name, ie, the +clefs name characters have in default text fonts. Luckily, textrace + mangles the feta names too. Sadly, textrace chooses different names + for characters > 128. + + + Textrace mangles font name by prepending `TeX-'. Doesn't seem to + pose a big problem; we'll have to pefix `TeX-' to feta fonts. + + + Sadly, only the sketch-0.7.x is happy with the feta type1 font, but + printing is not yet implemented? + + * Remove modules directory (again?). + + +1.5.18.moh1 +=========== + +* Further work on more flexible control of lyric alignment. + - new properties "alignment", "ignore-length-mismatch", "begin-alignment" a\nd "end-alignment" to control non-centered lyric alignment + + +1.5.19.hjj1 +=========== + +* Added \portato. + +1.5.18.jcn1 +=========== + +* Moved python modules to ./python. + +* Better python module stepmake support. + +* Bugfix ly2dvi etc: LILYPONDPREFIX should override datadir. + +1.5.18.hwn2 +=========== + +* Put lilylib back into ly2dvi + +* Cache symbols for {get,set}_{grob,music}_property and +{get,set}_property. Speedup: about 20 percent. + +* Remove C++ version of midi2ly + +* Inline Grob::parent_l (Axis), String::String() speedup 2 % + +* First try at Sketch (sketch.sourceforge.net) output. + + +1.5.18.rz1 +========== + +* subdivideBeams fix - setting property right after beam definition no + longer affects that beam. + +* Minor docu updates, accidental cleanups and example updates + +* Added Accidental grob properties paren-cautionaries and + cautionary-size controlling the appearance of cautionary accidentals + +1.5.18 +====== +1.5.17.jcn6 - aka: `pgwit! Ah, dacht dat-i zo wel aardig was.' +=========== + +* Some more hacking at midi2ly.py: + - options and stuff: moved to library for ly2dvi, midi2ly, mup2ly, + update-lily + - handle keys and note names + - simple quantising + - handle tuplets and silly durations + - guess clef + - don't include empty staffs in score + - print relative pitches by default + - don't repeat duration by default + - bugfix: allow 8th notes too + - include new version of input/test/midi-scales.ly + - added barchecks + fix + - bugfix for relative mode + +* Shorter MIDI creation texts. + +* Bugfix: Key_change_req::transpose: don't deliver reversed list. + +* Bugfix: Key_performer::create_audio_elements: transpose list to +`do', before determining tonality. + +1.4.8.moh1 +========== + +* new property "end-alignment" to control non-centered lyric alignment + +1.5.17.hwn1 +=========== + +* Be quicker in Grob::handle_broken_dependencies(). + +* --strict option for abc2ly, exit if an error is found. + +* GUILE 1.3.4 fix. + + +1.5.17 +====== + +1.5.16.hjj2 +=========== + +* Emacs-mode: Inserting tags + +* Enable python2.1/Python.h + +1.5.16.hwn1 +=========== + +* Add unfold-repeats function (Rune Zedeler!) to standard init SCM file. + +* Bugfix: spacing is no longer confused by coupled clefs, where one of the +clefs is loose, and the other not. + +* Robustness fix for Slur. Don't crash if attachment not set. + +* Arpeggios can now have arrows on the top or bottom to determine +their direction. (MF code by Chris Jackson) + +* Symbol cache bugfix in system-start-delimiter.cc -- may switch +symbol cache off for gcc 2.96? + +* MikTeX PDF detection bugfix (Mats Bengtsson) + +* Some more random hacking at midi2ly.py. (jcn1) + +* Inline unsmob_XXX functions. Speedup of 6% on wtk1-fugue2. + +1.5.15.jcn1 +=========== + +* Fixes for latest guile cvs. + +* Add --enable-optimising flag to configure (Huh?). + +* Only inline string utlis when optimising. + +* Compile fix. + +1.5.15.rz1 +========== + +* added property autoReminders, automatically creating reminder + accidentals. - major changes to accidental-engraver. + +1.5.15.hwn1 +=========== + +* Junk translator-description.scm + +* Make Repeated_music use 'element and 'elements in stead of 'body and +'alternatives. Associated changes in parser and music-sequence.cc. + +* Change Part_combine_music and Lyric_combine_music to use 'elements +music property. + +* Porrectus patch (Juergen Reuter) + + - Rewrote code for vaticana style porrectus grob; the solid shape is + now drawn as a single bezier sandwich rather than composed from a + couple of misused slurs. Looks now much nicer. + + - Added code to forbid line-breaking inbetween a porrectus + (preliminary; to be moved to ligature engraver framework). + + - Added auto-properties property for automatic determination of grob + properties add-stem and stem-direction from musical context. + + - Small clean-ups. + + +1.5.14.jcn6 +=========== + +* Some more random hacking at midi2ly.py. + +* Slightly better doco for r, s and \skip, with examples. + +* Bugfixes: add-html-footer.py and @MAILADDRESS@. + +* Some website related fixes (thanks Tiggr). + +* Ugly hack in add-html-footer for disabling tutorial and refman links +in sidebar. + +* Guile > 1.4 compilation fixes. + +* Website bugfix: mailto: (thanks David Boersma). + +1.5.14.hwn1 +=========== + +* Rename: Local_key_engraver to Accidental_engraver + +* Add documentation for accidentals grob property. + +* Don't make double accidentals even if two of the same notes are +specified. (Thanks Rune) + +* Search all staff-bars for non-empty barline to determine type. This +fixes span-bars with the lowest staff hara-kiried. (Thanks Rune) + + +1.5.14.rz1 +========== + +* Less buggy beam-split + +* Added subdivideBeams, subdividing beams on beats + +1.5.14 +====== + +1.5.13.hwn2 +=========== + +* Bugfix: revert font-relative-size for grace Accidentals + +* Bugfix: hara kiri'd piano staffs doesn't take space anymore. + +* Bugfix: reinstate rest-collisions. + +* Bugfix: key items have the c0 position again. + +* Make \property Voice.GrobName = \turnOff work again. + +* More intelligent symbol-cache, in less code. Turned off by default, doesn't +work with -O2 yet. + +* Documentation fixes: change documentation of Moment and make-moment, +add Translator::{name,description} + +* Junk STL implementation of Scheme_hash_table in favor of GUILE +hashtables with automatic resizing. + + +1.5.12.jcn2 +=========== + +* half-baken --with-kpathsea configuration fix. + +* ly2dvi: add `.' to TEXINPUTS to catch broken TEXINPUTS settings. + +* guile-1.4 compile fix. + +1.5.12.hwn1 +=========== + +* Move engraver descriptions into the C code. They are accessible +from Scheme. Grand rehacking to make stuff work again. + +* Precompute which engravers are eligible to acknowledge a certain +type of grob. Speedup: approx 10 % on interpretation phase. + + +1.5.12 +====== + +1.5.11.jcn1 +=========== + +* Add -p flag to package-diff.py's diff invocation, to show changed function. + +* Add configure checks for python headers. + +* Make midi module. + +1.5.11.hwn1 +=========== + +* Allow breaks at measures starting with grace notes. + +* Bugfix: don't give up when there is one entirely unspaceable +measure/line. + +* Midi module: many bugfixes. + +* midi2ly python blurble. + + +1.5.11 +====== + +1.5.10.jcn3 +=========== + +* include python midi parser. + +* stepmake updates. + +* add .cvsignore patterns for making patches the standard, manual way. + +* midi2ly: support chords, duration conversion rewrite. + +* parser.yy: Guile > 1.4 compilation fix; scm_unprotect_object is deprecated. + +1.5.10.hwn1 +=========== + +* Rational bugfix. + +* Cleaned up definitions of SystemStartDelimiter + +* WTK fix. + +* Porrectus patch (Juergen Reuter): + +- Syntax change: \porrectus -> \~ +- New porrectus properties: porrectus-width, line-thickness. +- Bugfix: left<->right confusion in porrectus-engraver.cc. +- Bugfix: Box dimensions for horizontal slope molecule in porrectus.cc. +- Enhanced mensural style porrectus shape, considering optical + illusion in vertical endings due to slope. Simplified drawing. +- Code clean-up. + +1.5.10 +====== + +1.5.9.hjj2 +========== +* Emacs-mode: Keyboard shortcuts, separated identifiers from keywords +and spacing not necessary in font-locking. + +1.5.9.jcn3 +========== + +* add-html-footer.py: use html <title> as fallback title for pages +where @WEB-TITLE@ is not defined. + +* Bugfix: stepmake: don't go building executables all over the place, +if NAME is set in environment. Some cleanups. + +* add-html-footer.py: remove href to self. Substitute @at-variables@ +defined in html comments. Any occurrence of + + <!-- @foo@=bar --> + +in the html page, will subsequently substitute any occurrence of @foo@ +in the same html page with `bar'. + +* Bugfix: update-lily: remove unprotected gettext.py include. + +* po update. + +* windows doc update. + +1.5.9.hwn3 +========== + +* Optimizations: + - speed up Rational::operator+= + - speed up Rational::compare () + - don't store origins if point-and-click not set. + +* \figures input mode: \figures { <4 6+> <3- 5>2. } + +* Obscure bugfix: call kpsewhich with --format for mfplain. + +* Don't put volta bracket on top of following note (vertically). + +* Collision fixes. + +* Crude figured bass support (supports rests as well, now) + +* Bugfix: various collision issues, updated regtest example. + +* Porrectus support (Juergen Reuter) + +1.5.9 +===== + +1.5.8.uu1 +========= + +* Mensural rests (Juergen Reuter) + +* Swedish translation (Thanks to the translation project) + +* Bugfix: down 8th flag restored. + +* Bugfix: span-bars and hara-kiri. + +* More advanced collisions: handle meshed chords as well. + +1.5.8.jcn1 +========== + +* Add mktextfm wrapper for windows (thanks Mats). + +1.5.8.hjj1 +========== + +* Emacs-mode: new keywords, reserved words, notenames and brackets are +font-lock-keywords; implementation encourages spacing/indenting. + + +1.5.8 +===== +1.5.7.hwn1 +========== + +* reinclude input/bugs/*.ly + +* Mensural flags (Juergen Reuter) + +* Fixed problem with hanging Xdvi from redhat 7.x. See also +http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=52089 + +* Bugfix: don't crash if kpse_find_file returns 0. + +* Bugfix: don't allocate \outputscale for every file. + +* Bugfix: mixing different rhythms on one staff doesn't muck up the +spacing that much. + +1.5.7.hjj2 +========== + +* Add PS-compilation, PS-viewing and MIDI-play in LilyPond +-Emacs-mode. (Heikki Johannes Junes). + +* Add common finnish names for notes + + +1.5.6.jcn2 +========= + +* Use Cygwin included Python; drop Windows Python and workarounds. + +* Include make/lilypond.mandrake.spec (unchecked!) and README.mandrake. + +* Comment out two non existing examples in regression test, add one +missing from 1.5.5 distribution. + +* Revert silly grace-with-braces stuff in tutorial. + +* Add short crescendo bug to input/bugs. + +* Update and bit more verbose download instructions in INSTALL, +fix some links on ftp.lilypond.org. + + +1.5.6.hwn1 +========== + +* Grace note bugfixes. + +* Move staff-adjacency detection (for the spacing engine) to +Separating_group_spanner. + +* Loose column support: clef changes, key changes may be folded underneath +notes in a different staff. See input/regression/spacing-folded-clef.ly. +Changes were made to + + - Separating_group_spanner: decide which columns are loose + + - Simple_spacer, New_spacing_spanner: only look at non-loose columns. + + - Line_of_score: set horizontal positions for loose columns. + +1.5.6 +===== + +1.4.6.mb1 +========= + +* Allow for duplicated articulation scripts with different direction. + +* Added new ornaments: \upmordent, \downmordent, \pralldown, \prallup, + \lineprall, \thumb, \comma (to be used with scriptHorizontal = ##t), + see also input/test/trill.ly. [WARNING: FONT UPDATE!] + +* Bug fix: staccato dot placement. + +1.5.5.jr1 +========= + +* recent ancient-font.ly development branches manually merged and + updated; + +* added enhanced mensural minima/fusa noteheads (30 degrees rhomb + style); the former 45 degrees quadratic shapes are now available + under notehead style "neo_mensural"; [WARNING: FONT UPDATE] + +* minor ancient font corrections (in particular, enhanced set_char_box() + arguments). + + +1.5.5.jcn2 +========== + +* input/bugs: + - Autogenerate bugs document from all .ly's. + - Add texidoc to lots of examples. + - Junk or move fixed examples to regression test. + - Move examples that crash lilypond to input/no-notation. + - Update examples. + +1.5.5.hwn1 +========== + +* Grace property fixes. + +* More grace nesting bugfixes. + +1.5.5 +===== + +1.5.4.jcn2 +========== + +* Spelling fixes, notably staffs->staves, except for ChangeLogs. + +* Removed `Default' from accidental comment names. + +* Compile fixes. + +* Fixed off by one error for point and click. + +* Website fixes, found bug in grace note stem lengths. + +1.5.4.hwn1 +========== + +* Ancient font update [WARNING FONTS CHANGED!] (Juergen Reuter) + +* New_spacing_spanner: revised spacing generation. + +* Default neutral direction set to down. + +* Junk hash table from flowerlib + +* Bugfix: grace nesting error + +* Bugfix: don't try schedule next bar when were on a grace moment. + +* Bugfix: set measurePosition especially for music starting with +grace. + +1.5.3.hwn1 +========== + +* midi2ly bugfixes: don't print ';' in .ly output. + +* small cleanup of input/bugs/ + +* bugfix: nested grace notes; added input/regression/grace-nest.ly + +* Bugfix: add double alterations to keyAccidentalOrder (Mats) + +* Fixes for PostScript beams and stems. + +1.5.2.hwn1 +========== + +* Starting pagenumber (Mark Hindley) + +* Ancient font patch (Juergen Reuter) [WARNING: FONT UPDATE!] + +* Bugfix: don't put grace beams on non grace notes, and vice versa. + +* etf2ly: + - miserable try at importing repeatbars and volta brackets; + - import articulation defs (IX tag) + - revamped file reading logic. Now much cleaner. + +* Experimental regular-spacing support: try to space regular runs of +notes equidistantly. + +1.5.2.jcn2 +========== + +* Flex is fixed in Debian/unstable. Update documentation accordingly. + +* Guile 1.3.4 compile fix. + +* Add trill line type, see input/test/trill.ly. + +* Dvips bugs workarounds: + - Draw filledbox in tex for now. Test ps code using + + lilypond -e '(define ps-testing 1)' + + - Extend stems only half way into beam. + +* Change order of includes in tex/lilyponddefs.tex so that feta font +can be used a little easier, like: + + title="TeX \fetachar\fetasharp" + +* Update stepmake/bin config.sub, config.guess. + +1.5.2 +===== + +1.5.1.hwn1 +========== + +* small bugfixes for grace-init.ly + +* Bugfix: don't mess up spacing when combining different tuplets. + +* Small bugfixes for lilypond-mode.el. + +* property-init.ly: bugfix for dot directions in polyphonic music. + +1.5.1.jcn3 +========== + +* Bugfix: text2html: escape entities inside <pre>. + +* Added some template .ly's for evaluation. + +* Make blot work without -fps too. + +* Use blot diameter for postscript beams and boxes. + +* Guile-1.5.0-cvs updates and Guile-1.4.x compatibility. + +* Beam knee fix. + +* Now really included lexer-gcc-3.0.patch. + +* Make Voice context accept Thread again; this fixes MIDI output for music +that uses Thread contexts. + +* Removed debug printing from chord-name.scm. + +1.5.0 +===== +1.5.0.jcn1 +========== + +* Added feature to ly2dvi to find feta pfa font files used in a +postscript file to make printing of direct postscript a bit easier: + + lilypond -fps input/trip.ly + cat $(ly2dvi -f trip.ps) trip.ps | lpr + +* Reincluded 1.4.3.jcn2. + +* Website fixes. + +* Ly2dvi now leaves .tex and .latex output if latex fails, and cleans +the temp dir if anything fails. + +* Fixes for windows scripts. + +1.5.0.uu1 +========= + +* Hara kiri and span-bar. + +* Junk old grace stuff. + +* Don't crash on grace notes in MIDI output. + + + +1.5.0 +===== + +* experimental grace notes: + - add grace timing to Moment + - hack to Sequential_music_iterator to use the correct timing for +the note before a grace + - change the implementation of \grace construct + - property set/unset (eg. font size) is done through startGraceMusic +and stopGraceMusic + - various engraver fixes to deal with the fact that the +main-time-moment may remain the same during several steps. + - Change column creation logic in score-engraver. + +* Bugfix: don't crash when \name not set in \translator block. + +* rename ly/*.ly to ly/*-init.ly (except language files) to avoid +name clashes + +* deprecate Property_engraver, add Font_size_engraver to Staff, Voice +and Thread. + +* Change mailing list address: *gnu-music*@gnu.org becomes +*lilypond*@gnu.org + +* Put span-bar lines only between the other barlines, not on top of +them (thanks to Juergen Reuter) + +1.4.4.jcn3 +========== + +TODO: look at other filledbox'es (stafflines and barlines don't match up). + +* Testing code off by default. On: -e "(define ps-testing 1)" -fps + +* Output via TeX/dvips still gives problems. Use direct postscript +output for real testing. + +* Beam and stem fixes: + - Stems drawn in PostScript (should do all filledbox'es in PS?). + - Fixes for draw_box and draw_beam PostScript routines. + - Stems reach to top (or bottom) of beam. + - Beam uses correct stem thickness (only right beams, left TODO). + - testing code in effect: only outlines are drawn. + diff --git a/GNUmakefile.in b/GNUmakefile.in index 6a2834fa29..5ae750579e 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -16,7 +16,7 @@ SUBDIRS = buildscripts scripts flower lily \ # SCRIPTS = configure aclocal.m4 autogen.sh -README_FILES = ChangeLog CHANGES COPYING DEDICATION NEWS README.mandrake ROADMAP THANKS +README_FILES = ChangeLog COPYING DEDICATION NEWS README.mandrake ROADMAP THANKS README_TXT_FILES = AUTHORS.txt README.txt INSTALL.txt IN_FILES := $(wildcard *.in) EXTRA_DIST_FILES = $(wildcard *.el) vimrc VERSION $(README_FILES) $(SCRIPTS) $(IN_FILES) emacsclient.patch lexer-gcc-3.0.patch server.el.patch darwin.patch .cvsignore lexer-gcc-3.1.sh diff --git a/lily/beam.cc b/lily/beam.cc index 8e454d3e91..56774c1b5a 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -67,6 +67,13 @@ Beam::add_stem (Grob *me, Grob *s) } +Real +Beam::get_thickness (Grob * me) +{ + return gh_scm2double (me->get_grob_property ("thickness")) + * Staff_symbol_referencer::staff_space (me); +} + /* Return the translation between 2 adjoining beams. */ Real Beam::get_beam_translation (Grob *me) @@ -97,8 +104,7 @@ Beam::space_function (SCM smob, SCM beam_count) Real staff_space = Staff_symbol_referencer::staff_space (me); Real line = me->get_paper ()->get_var ("linethickness"); - Real thickness = gh_scm2double (me->get_grob_property ("thickness")) - * staff_space; + Real thickness = get_thickness (me); Real beam_translation = gh_scm2int (beam_count) < 4 ? (2*staff_space + line - thickness) / 2.0 @@ -316,8 +322,7 @@ Beam::brew_molecule (SCM grob) Real dy = pos.delta (); Real dydx = dy && dx ? dy/dx : 0; - Real thick = gh_scm2double (me->get_grob_property ("thickness")) - * Staff_symbol_referencer::staff_space (me); + Real thick = get_thickness (me); Real bdy = get_beam_translation (me); SCM last_beaming = SCM_EOL;; @@ -1215,8 +1220,7 @@ Beam::set_stem_lengths (Grob *me) &&gh_scm2double (me->get_grob_property ("gap"))) { gap = true; - thick = gh_scm2double (me->get_grob_property ("thickness")) - * Staff_symbol_referencer::staff_space(me); + thick = get_thickness(me); } // ugh -> use commonx diff --git a/lily/include/beam.hh b/lily/include/beam.hh index b06afc0e4e..e5f544b706 100644 --- a/lily/include/beam.hh +++ b/lily/include/beam.hh @@ -26,7 +26,10 @@ public: static void set_beaming (Grob*,Beaming_info_list *); static void set_stemlens (Grob*); static int get_beam_count (Grob*me); + static Real get_beam_translation (Grob*me); + static Real get_thickness (Grob*me); + static void connect_beams (Grob*me); DECLARE_SCHEME_CALLBACK (space_function, (SCM, SCM)); DECLARE_SCHEME_CALLBACK (brew_molecule, (SCM)); diff --git a/lily/lexer.ll b/lily/lexer.ll index 8413a0ce43..53bae6edef 100644 --- a/lily/lexer.ll +++ b/lily/lexer.ll @@ -474,6 +474,12 @@ HYPHEN -- return E_TILDE; case '\\': return E_BACKSLASH; + + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + yylval.i = c -'0'; + return E_DIGIT; + default: return E_CHAR; } diff --git a/lily/parser.yy b/lily/parser.yy index 3e92db7735..6de60181d2 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -241,7 +241,7 @@ yylex (YYSTYPE *s, void * v) /* escaped */ %token E_CHAR E_EXCLAMATION E_SMALLER E_BIGGER E_OPEN E_CLOSE -%token E_LEFTSQUARE E_RIGHTSQUARE E_TILDE +%token E_LEFTSQUARE E_RIGHTSQUARE E_TILDE E_DIGIT %token E_BACKSLASH %token CHORD_BASS CHORD_COLON CHORD_MINUS CHORD_CARET CHORD_SLASH %token FIGURE_SPACE @@ -525,7 +525,7 @@ translator_spec_body: } | translator_spec_body ALIAS STRING { Translator_def*td = unsmob_translator_def ($$); - td->type_aliases_ = gh_cons ($3, td->type_aliases_); + td->type_aliases_ = scm_cons ($3, td->type_aliases_); } | translator_spec_body GROBDESCRIPTIONS embedded_scm { Translator_def*td = unsmob_translator_def($$); @@ -688,11 +688,11 @@ The representation of a list is the to have efficient append. */ Music_list: /* empty */ { - $$ = gh_cons (SCM_EOL, SCM_EOL); + $$ = scm_cons (SCM_EOL, SCM_EOL); } | Music_list Music { SCM s = $$; - SCM c = gh_cons ($2->self_scm (), SCM_EOL); + SCM c = scm_cons ($2->self_scm (), SCM_EOL); scm_gc_unprotect_object ($2->self_scm ()); /* UGH */ if (gh_pair_p (ly_cdr (s))) gh_set_cdr_x (ly_cdr (s), c); /* append */ @@ -862,14 +862,14 @@ Composite_music: SCM ms = SCM_EOL; if (stopm) { stopm = stopm->clone (); - ms = gh_cons (stopm->self_scm (), ms); + ms = scm_cons (stopm->self_scm (), ms); scm_gc_unprotect_object (stopm->self_scm ()); } - ms = gh_cons ($2->self_scm (), ms); + ms = scm_cons ($2->self_scm (), ms); scm_gc_unprotect_object ($2->self_scm()); if (startm) { startm = startm->clone (); - ms = gh_cons (startm->self_scm () , ms); + ms = scm_cons (startm->self_scm () , ms); scm_gc_unprotect_object (startm->self_scm ()); } @@ -1175,7 +1175,7 @@ request_chord: command_element: command_req { $$ = new Request_chord (SCM_EOL); - $$->set_mus_property ("elements", gh_cons ($1->self_scm (), SCM_EOL)); + $$->set_mus_property ("elements", scm_cons ($1->self_scm (), SCM_EOL)); scm_gc_unprotect_object ($1->self_scm()); $$-> set_spot (THIS->here_input ()); @@ -1188,7 +1188,7 @@ command_element: l->set_spot (THIS->here_input ()); $$ = new Request_chord (SCM_EOL); - $$->set_mus_property ("elements", gh_cons (l->self_scm (), SCM_EOL)); + $$->set_mus_property ("elements", scm_cons (l->self_scm (), SCM_EOL)); scm_gc_unprotect_object (l->self_scm()); $$->set_spot (THIS->here_input ()); } @@ -1199,13 +1199,13 @@ command_element: l->set_spot (THIS->here_input ()); $$ = new Request_chord (SCM_EOL); - $$->set_mus_property ("elements", gh_cons (l->self_scm (), SCM_EOL)); + $$->set_mus_property ("elements", scm_cons (l->self_scm (), SCM_EOL)); $$->set_spot (THIS->here_input ()); scm_gc_unprotect_object (l->self_scm()); } | E_BACKSLASH { - $$ = new Music (gh_list (gh_cons (ly_symbol2scm ("name"), ly_symbol2scm ("separator")), SCM_UNDEFINED)); + $$ = new Music (gh_list (scm_cons (ly_symbol2scm ("name"), ly_symbol2scm ("separator")), SCM_UNDEFINED)); $$->set_spot (THIS->here_input ()); } | '|' { @@ -1245,7 +1245,7 @@ command_element: for (SCM s = result ; gh_pair_p (s); s = ly_cdr (s)) { Music * p = new Music (SCM_EOL); set_music_properties (p, ly_car (s)); - l = gh_cons (p->self_scm (), l); + l = scm_cons (p->self_scm (), l); scm_gc_unprotect_object (p->self_scm ()); } Sequential_music * seq = new Sequential_music (SCM_EOL); @@ -1399,7 +1399,7 @@ post_request: TODO. */ string_request: - '/' DIGIT { $$ = new Text_script_req (); } + E_DIGIT { $$ = new Text_script_req (); } ; request_that_take_dir: @@ -1778,7 +1778,7 @@ multiplied_duration: fraction: FRACTION { $$ = $1; } | UNSIGNED '/' UNSIGNED { - $$ = gh_cons (gh_int2scm ($1), gh_int2scm ($3)); + $$ = scm_cons (gh_int2scm ($1), gh_int2scm ($3)); } ; @@ -1861,7 +1861,7 @@ figure_list: $$ = SCM_EOL; } | figure_list br_bass_figure { - $$ = gh_cons ($2, $1); + $$ = scm_cons ($2, $1); } ; @@ -2044,10 +2044,10 @@ chord_bass: chord_step: chord_note { - $$ = gh_cons ($1, SCM_EOL); + $$ = scm_cons ($1, SCM_EOL); } | CHORDMODIFIER_PITCH { - $$ = gh_cons (unsmob_pitch ($1)->smobbed_copy (), SCM_EOL); + $$ = scm_cons (unsmob_pitch ($1)->smobbed_copy (), SCM_EOL); } | CHORDMODIFIER_PITCH chord_note { /* Ugh. */ $$ = scm_list_n (unsmob_pitch ($1)->smobbed_copy (), diff --git a/lily/stem.cc b/lily/stem.cc index a7bd85ea37..510ca1b60d 100644 --- a/lily/stem.cc +++ b/lily/stem.cc @@ -516,6 +516,12 @@ Stem::height (SCM smob, SCM ax) Interval iv; if (mol != SCM_EOL) iv = unsmob_molecule (mol)->extent (a); + if (Grob *b =get_beam (me)) + { + Direction d = get_direction (me); + iv[d] += d * Beam::get_thickness (b) /2.0 ; + } + return ly_interval2scm (iv); } diff --git a/lily/text-spanner-engraver.cc b/lily/text-spanner-engraver.cc index 8e26e7d501..e0d1c5f0a7 100644 --- a/lily/text-spanner-engraver.cc +++ b/lily/text-spanner-engraver.cc @@ -29,7 +29,7 @@ protected: virtual bool try_music (Music *); virtual void stop_translation_timestep (); virtual void start_translation_timestep (); - virtual void process_acknowledged_grobs (); + virtual void process_music (); private: Spanner *span_; @@ -82,7 +82,7 @@ Text_spanner_engraver::try_music (Music *m) } void -Text_spanner_engraver::process_acknowledged_grobs () +Text_spanner_engraver::process_music () { if (req_drul_[STOP]) { @@ -93,14 +93,9 @@ Text_spanner_engraver::process_acknowledged_grobs () } else { - assert (!finished_); - Grob* e = unsmob_grob (get_property ("currentMusicalColumn")); - span_->set_bound (RIGHT, e); - finished_ = span_; span_ = 0; current_req_ = 0; - req_drul_[STOP] = 0; } } @@ -108,8 +103,7 @@ Text_spanner_engraver::process_acknowledged_grobs () { if (current_req_) { - req_drul_[START]->origin ()->warning - (_ ("already have a text spanner")); + req_drul_[START]->origin ()->warning(_ ("already have a text spanner")); } else { @@ -122,9 +116,6 @@ Text_spanner_engraver::process_acknowledged_grobs () span_->set_grob_property ("width-correct", gh_double2scm (0)); Side_position_interface::set_axis (span_, Y_AXIS); - Grob *e = unsmob_grob (get_property ("currentMusicalColumn")); - span_->set_bound (LEFT, e); - announce_grob (span_, req_drul_[START]->self_scm()); req_drul_[START] = 0; } @@ -134,10 +125,14 @@ Text_spanner_engraver::process_acknowledged_grobs () void Text_spanner_engraver::acknowledge_grob (Grob_info info) { - if (span_ && Note_column::has_interface (info.grob_)) + Spanner * spans[2] ={span_, finished_}; + for (int i = 0; i < 2 ; i++) { - Side_position_interface::add_support (span_, info.grob_); - add_bound_item (span_, dynamic_cast<Item*> (info.grob_)); + if (spans[i] && Note_column::has_interface (info.grob_)) + { + Side_position_interface::add_support (spans[i], info.grob_); + add_bound_item (spans[i], dynamic_cast<Item*> (info.grob_)); + } } } @@ -147,6 +142,12 @@ Text_spanner_engraver::typeset_all () if (finished_) { Side_position_interface::add_staff_support (finished_); + + if (!finished_->get_bound (RIGHT)) + { + Grob* e = unsmob_grob (get_property ("currentMusicalColumn")); + span_->set_bound (RIGHT, e); + } typeset_grob (finished_); finished_ = 0; } @@ -155,6 +156,12 @@ Text_spanner_engraver::typeset_all () void Text_spanner_engraver::stop_translation_timestep () { + if (span_ && !span_->get_bound (LEFT)) + { + Grob* e = unsmob_grob (get_property ("currentMusicalColumn")); + span_->set_bound (LEFT, e); + } + typeset_all (); } @@ -171,7 +178,7 @@ Text_spanner_engraver::finalize () } ENTER_DESCRIPTION(Text_spanner_engraver, -/* descr */ "Create text spanner from a Span_req ", +/* descr */ "Create text spanner from a Span_req.", /* creats*/ "TextSpanner", /* acks */ "note-column-interface", /* reads */ "", diff --git a/lily/translator-def.cc b/lily/translator-def.cc index 7db483d56a..14d7c9f9f8 100644 --- a/lily/translator-def.cc +++ b/lily/translator-def.cc @@ -62,7 +62,7 @@ Translator_def::Translator_def (Translator_def const & s) end_consists_name_list_ = scm_list_copy (s.end_consists_name_list_); accepts_name_list_ = scm_list_copy (s.accepts_name_list_); property_ops_ = scm_list_copy (s.property_ops_); - type_aliases_ = s.type_aliases_; + type_aliases_ = scm_list_copy (s.type_aliases_); translator_group_type_ = s.translator_group_type_; type_name_ = s.type_name_; } diff --git a/lily/tuplet-bracket.cc b/lily/tuplet-bracket.cc index b00c319c23..77078a50d1 100644 --- a/lily/tuplet-bracket.cc +++ b/lily/tuplet-bracket.cc @@ -308,7 +308,7 @@ Tuplet_bracket::calc_position_and_height (Grob*me,Real *offset, Real * dy) { Real notey = columns[i]->extent (commony, Y_AXIS)[dir] - me->relative_coordinate (commony, Y_AXIS); - + Real x = columns[i]->relative_coordinate (commonx, X_AXIS) - x0; Real tuplety = *dy * x * factor; @@ -322,11 +322,12 @@ Tuplet_bracket::calc_position_and_height (Grob*me,Real *offset, Real * dy) /* horizontal brackets should not collide with staff lines. + */ - if (*dy == 0) + Real ss= Staff_symbol_referencer::staff_space (me); + if (*dy == 0 && fabs (*offset) < ss * Staff_symbol_referencer::staff_radius (me)) { // quantize, then do collision check. - Real ss= Staff_symbol_referencer::staff_space (me); *offset *= 2 / ss; *offset = rint (*offset); diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly index 872679695d..5929aaec4d 100644 --- a/ly/engraver-init.ly +++ b/ly/engraver-init.ly @@ -352,7 +352,7 @@ ScoreContext = \translator { %% TODO? add this alias from Timing_engraver::initialize() ? \consists "Timing_engraver" - \alias Timing + \alias "Timing" \consists "Output_property_engraver" \consists "System_start_delimiter_engraver" diff --git a/ly/performer-init.ly b/ly/performer-init.ly index 3bc296fab1..500ea65b51 100644 --- a/ly/performer-init.ly +++ b/ly/performer-init.ly @@ -115,7 +115,7 @@ ScoreContext = \translator { \accepts ChoirStaff \accepts RhythmicStaff \accepts ChordNames - + \alias "Timing" \consists "Timing_translator" \consists "Swallow_performer"