* 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.
+++ /dev/null
-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.
-
+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
--- /dev/null
+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.
+
#
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
}
+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)
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
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;;
&&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
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));
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;
}
/* 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
}
| 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($$);
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 */
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 ());
}
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 ());
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 ());
}
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 ());
}
| '|' {
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);
TODO.
*/
string_request:
- '/' DIGIT { $$ = new Text_script_req (); }
+ E_DIGIT { $$ = new Text_script_req (); }
;
request_that_take_dir:
fraction:
FRACTION { $$ = $1; }
| UNSIGNED '/' UNSIGNED {
- $$ = gh_cons (gh_int2scm ($1), gh_int2scm ($3));
+ $$ = scm_cons (gh_int2scm ($1), gh_int2scm ($3));
}
;
$$ = SCM_EOL;
}
| figure_list br_bass_figure {
- $$ = gh_cons ($2, $1);
+ $$ = scm_cons ($2, $1);
}
;
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 (),
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);
}
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_;
}
void
-Text_spanner_engraver::process_acknowledged_grobs ()
+Text_spanner_engraver::process_music ()
{
if (req_drul_[STOP])
{
}
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;
}
}
{
if (current_req_)
{
- req_drul_[START]->origin ()->warning
- (_ ("already have a text spanner"));
+ req_drul_[START]->origin ()->warning(_ ("already have a text spanner"));
}
else
{
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;
}
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_));
+ }
}
}
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;
}
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 ();
}
}
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 */ "",
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_;
}
{
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;
/*
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);
%% TODO? add this alias from Timing_engraver::initialize() ?
\consists "Timing_engraver"
- \alias Timing
+ \alias "Timing"
\consists "Output_property_engraver"
\consists "System_start_delimiter_engraver"
\accepts ChoirStaff
\accepts RhythmicStaff
\accepts ChordNames
-
+ \alias "Timing"
\consists "Timing_translator"
\consists "Swallow_performer"