* scripts/musicxml2ly.py (musicxml_voice_to_lily_voice): don't
forget
(musicxml_voice_to_lily_voice): use pending_skip iso. ly_voice[-1]
(main): add if __main__ for debugging.
* scripts/musicxml2ly.py (progress): new function
(musicxml_key_to_lily): don't barf on modeless keys.
(create_skip_music): new function.
(musicxml_spanner_to_lily_event): new function. Handle beams too.
(musicxml_note_to_lily_main_event): new function.
* python/musicxml.py (Accidental.__init__): new class.
* scripts/musicxml2ly.py (progress): new function
(musicxml_key_to_lily): don't barf on modeless keys.
(create_skip_music): new function.
(musicxml_spanner_to_lily_event): new function. Handle beams too.
(musicxml_note_to_lily_main_event): new function.
* scripts/musicxml2ly.py (progress): new function
(musicxml_key_to_lily): don't barf on modeless keys.
(create_skip_music): new function.
(musicxml_spanner_to_lily_event): new function. Handle beams too.
(musicxml_note_to_lily_main_event): new function.
* python/musicexp.py (Music.__init__): add comment field.
(NestedMusic.append): new routine.
(SequentialMusic.print_ly): print comment.
(ArpeggioEvent.ly_expression): new class
(BeamEvent.ly_expression): new class
(NoteEvent.__init__): support for cautionary/forced accs.
* lily/lookup.cc (slur): normal order for array loop.
* python/musicexp.py: grab from Ikebana: a library for composing
ly music expressions.
(Output_printer): class for advanced .ly printing.
(eg. tupletting)
* python/musicxml.py: new file. Read MusicXML MiniDOM tree, and
convert to pythonesque structure.
* Documentation/user/converters.itely (Invoking musicxml2ly): new node.
Nicolas Sceaux [Sat, 26 Nov 2005 11:11:50 +0000 (11:11 +0000)]
(RevertProperty, OverrideProperty): Use grob-property-path property, a
list of symbols, instead of grob-property, which used to be a single
symbol.
(BassFigureEvent): a figure can be a plain number, not
necessarily a markup.
Han-Wen Nienhuys [Mon, 21 Nov 2005 01:32:17 +0000 (01:32 +0000)]
(struct
Bracket_nesting_node): new class.
(struct Bracket_nesting_group): new class
(struct Bracket_nesting_staff): new class.
(process_music): create hierarchy of grobs. This allows separate
tuning of different SSDs.
Han-Wen Nienhuys [Mon, 21 Nov 2005 01:27:45 +0000 (01:27 +0000)]
* ly/engraver-init.ly (AncientRemoveEmptyStaffContext): replace
System_start_delimiter_engraver by Nested_system_start_delimiter_engraver.
* lily/nested-system-start-delimiter-engraver.cc (struct
Bracket_nesting_node): new class.
(struct Bracket_nesting_group): new class
(struct Bracket_nesting_staff): new class.
(process_music): create hierarchy of grobs. This allows separate
tuning of different SSDs.
* scm/define-grobs.scm (all-grob-descriptions): new Grob SystemStartSquare
(all-grob-descriptions): remove old NestedSystemStartDelimiter.
Mats Bengtsson [Thu, 17 Nov 2005 12:48:29 +0000 (12:48 +0000)]
* python/midi.c: PyMIDINIT_FUNC isn't defined in Python < 2.3
add dummy definition that works in Linux and add information in
INSTALL.texi on the specific Python requirements for Cygwin/Mingw.
Han-Wen Nienhuys [Wed, 16 Nov 2005 15:54:43 +0000 (15:54 +0000)]
* lily/tie-formatting-problem.cc (find_optimal_tie_configuration):
new function. Search region of 3 positions for best tie.
(score_configuration): new function.
(score_aptitude): new function.
(generate_configuration): new function.
(get_configuration): new function.
(Tie_formatting_problem): new function
* input/regression/page-top-space.ly: a6 for page-top-space demo.
Jürgen Reuter [Tue, 15 Nov 2005 23:21:17 +0000 (23:21 +0000)]
* lily/ligature-engraver.cc, lily/include/ligature-engraver.hh,
scm/define-context-properties.scm: Maintenance bugfix: make
ligature brackets work again by removing obsolete ligature
primitive callback push/pop.
Werner Lemberg [Sun, 13 Nov 2005 06:16:06 +0000 (06:16 +0000)]
* mf/feta-haak.mf: Formatting.
(draw_bracket): Slightly modify outline to avoid an unnecessary
corner.
Don't use ad-hoc values for `leave_angle' and `tip_angle' but derive
them from the affected paths.
Werner Lemberg [Sun, 13 Nov 2005 06:09:27 +0000 (06:09 +0000)]
* mf/feta-arrow.mf: For all glyphs, don't mirror `currentpicture'
but the affected path. This ensures that the (overlapping) outlines
have the same direction, which is a necessary prerequisite for
FontForge's algorithm to remove overlaps.
Formatting.
Han-Wen Nienhuys [Sun, 13 Nov 2005 01:43:55 +0000 (01:43 +0000)]
* lily/tie-column-format.cc (set_chord_outline): add dots into
skyline extents. This fixes tie formatting if the left head has dots.
* lily/tie.cc (get_configuration): only shift tie by a whole staff
space inside the staff.
(get_configuration): shift another position if necessary in case
of left head tie
Han-Wen Nienhuys [Sat, 12 Nov 2005 14:20:03 +0000 (14:20 +0000)]
* lily/system-start-delimiter-engraver.cc
(acknowledge_system_start_delimiter): use
add_offset_callback(). This fixes translation of nested
staffgroups.
* lily/grob-closure.cc (add_offset_callback): only encaps in
simple_closure if it's a procedure.
* lily/span-bar.cc (calc_glyph_name): read glyph-name, not glyph
from bar-line.
* ly/engraver-init.ly (RemoveEmptyRhythmicStaffContext): add
remove-empty where pertinent.