David Kastrup <[email protected]> writes: > Mojca Miklavec <[email protected]> writes: > >> If I run midi2ly with -e, this is what I get as lilypond output: >> f,4 <f4 a4 c'4 >4 <a'4 c''4 f4 a4 c'4 >4 >> >> The problem is that durations are not allowed inside chords with >> single "brackets". >> >> This looks like a bug to me. > > Not just to you.
Would seem to be introduced by commit 8cc7376d76c442096b950d8f5e9d1c57388f65bb Author: Jan Nieuwenhuizen <[email protected]> Date: Mon Feb 21 14:37:32 2011 +0100 Midi2ly: process all voices/threads of a channel. Fixes #1531. and in particular the change @@ -272,9 +276,9 @@ class Note: elif commas < 0: s = s + "," * -commas - ## FIXME: compile fix --jcn - if (dump_dur and (global_options.explicit_durations - or self.duration.compare (reference_note.duration))): + if ((dump_dur + and self.duration.compare (reference_note.duration)) + or global_options.explicit_durations): s = s + self.duration.dump () reference_note = self Then we have commit commit e1d47884955f31275ebb0972a08efd1d9d0457dc Author: Jan Nieuwenhuizen <[email protected]> Date: Sat Dec 28 11:57:33 2002 +0000 * .cvsignore: Remove stepmake (huh!?!), add lib. * GNUmakefile.in: Add libdir links for builddir runs. * scripts/midi2ly.py: Add [lilypond_]libdir/python to path, instead of datadir. * make/substitute.make (ATVARIABLES): Add lilypond_libdir, local_lilypond_libdir. * config.make.in (lilypond_libdir): Add. * stepmake/stepmake/substitute-rules.make: * stepmake/stepmake/script-rules.make: * stepmake/stepmake/python-module-rules.make: * stepmake/aclocal.m4 (STEPMAKE_LIBDIR): Fixes from lilypond-python-module patch. with the attempt to fix a syntax error (Python does not understand prefix syntax): @@ -450,9 +446,10 @@ class Note: elif commas < 0: s = s + "," * -commas - if and dump_dur (explicit_durations_p \ + ## FIXME: compile fix --jcn + if (dump_dur and explicit_durations_p) \ or Duration.compare (self.duration, - reference_note.duration)): + reference_note.duration): s = s + self.duration.dump () reference_note = self which would however appear to establish the problem inside of chords. This was fixed again with commit commit 8d0267eb80a7cb026751db0a9eabeb61d958776e Author: Han-Wen Nienhuys <[email protected]> Date: Thu Mar 6 20:06:57 2003 +0000 * ly/engraver-init.ly: use Hara kiri by default for ChordNames, FiguredBass and Lyrics(Voice) context. * lily/axis-group-engraver.cc (acknowledge_grob): use rhythmic-grob-interface for selecting items not to hara-kiri'd * scm/new-markup.scm (markup-function-list): add bracket, vbracket. * ly/engraver-init.ly (ChordNamesContext): set minimumVerticalExtent containing @@ -447,9 +447,9 @@ class Note: s = s + "," * -commas ## FIXME: compile fix --jcn - if (dump_dur and explicit_durations_p) \ + if dump_dur and (explicit_durations_p \ or Duration.compare (self.duration, - reference_note.duration): + reference_note.duration)): s = s + self.duration.dump () reference_note = self only to get mauled again later by Jan again. So there is a history of this bug getting changed back and forth by Han-Wen and Jan (though I don't really know when current chord syntax was finalized so maybe it did not start as a bug?), and of course there is no mention of any rationale in any commit message. The difference is only seen when explicit mode is on and chords become unusable then. I'll try to see whether I can fix this mess. -- David Kastrup _______________________________________________ bug-lilypond mailing list [email protected] https://lists.gnu.org/mailman/listinfo/bug-lilypond
