]> git.donarmstrong.com Git - lilypond.git/commitdiff
* ly/performer-init.ly (ScoreContext): add Timing alias
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 7 Sep 2002 13:20:47 +0000 (13:20 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 7 Sep 2002 13:20:47 +0000 (13:20 +0000)
* 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.

14 files changed:
CHANGES [deleted file]
ChangeLog
Documentation/misc/CHANGES-1.5 [new file with mode: 0644]
GNUmakefile.in
lily/beam.cc
lily/include/beam.hh
lily/lexer.ll
lily/parser.yy
lily/stem.cc
lily/text-spanner-engraver.cc
lily/translator-def.cc
lily/tuplet-bracket.cc
ly/engraver-init.ly
ly/performer-init.ly

diff --git a/CHANGES b/CHANGES
deleted file mode 100644 (file)
index 5f42581..0000000
--- 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 <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.
-
index 45cb7f2e37d6ebdd667a01a201d5f25e02b26db0..1c1019ec3a088c23be2ebd8d477323920ae2ba6e 100644 (file)
--- 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 (file)
index 0000000..5f42581
--- /dev/null
@@ -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.
+
index 6a2834fa29b36fca24cf7bf9237b5c48411b0a1a..5ae750579e50766245a2929522e992e9ea7e0da9 100644 (file)
@@ -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 
index 8e454d3e911bf7304f784e5408ef92437a03cc57..56774c1b5a6b841c9fe479f361d8baef5869fe3f 100644 (file)
@@ -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
index b06afc0e4e20d1d256f53efe866f862d9c736b80..e5f544b706613994c3500fa3dafcf444b665b111 100644 (file)
@@ -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));
index 8413a0ce431eaadf483b693363df17b28f88eba5..53bae6edef3ecd8bf5496b5d74ec919abfcd76f9 100644 (file)
@@ -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;
     }
index 3e92db773553db780a483be08e98b0b4209d618c..6de60181d2b9c4e828c9ecbc5b921af5986bb5e0 100644 (file)
@@ -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 (),
index a7bd85ea37cff510a9feeb785ab5a169512eaabf..510ca1b60d38a3e300fbebd7cbd2e8fe4e838c0a 100644 (file)
@@ -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);
 }
 
index 8e26e7d5019f1ecfd1e67ecb22baf0c369f4b925..e0d1c5f0a733fd230a443be0829402e8ed6516b4 100644 (file)
@@ -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 */       "",
index 7db483d56af11ed7c37022e2923f8a6e98c7b7a6..14d7c9f9f84e6298916381d99d9d97d82a9162ed 100644 (file)
@@ -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_;
 }
index b00c319c23f961f5897b57d115e67e53d1fa5e0a..77078a50d1f697e75265be2de2dbe60ce8d1280d 100644 (file)
@@ -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);
index 872679695d6fa938976799a41be9ec7624690a3a..5929aaec4d5415b817f84eb1e93638e77c1abdd6 100644 (file)
@@ -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"
index 3bc296fab1187716caa855f8c58f65ea417d49b9..500ea65b511159ed263a794843af3ff166971d1e 100644 (file)
@@ -115,7 +115,7 @@ ScoreContext = \translator {
        \accepts ChoirStaff
        \accepts RhythmicStaff
        \accepts ChordNames
-
+       \alias "Timing"
        \consists "Timing_translator"
        \consists "Swallow_performer"