Changelog:
October 21 2011
Abc2midi bug: %%MIDI control command after a rest causes loss of
synchronization. In the following example
X:1
T: Synchronization Loss after rest (z2)
V:1
V:2
M: 4/4
K:F#dor
V:1
|: A,G, | F,G,F,G, A,B,A,G, | F,4-F,2 :|
V:2
%%MIDI program 65
|:\
%%MIDI control 7 40
de| f4 z2
%%MIDI control 7 80
GA| f4-f2\
:|
The control command is used to modulate the loudness of the alto saxophone
in voice 2. The second control command which attenuates the saxophone
to velocity 80 introduces another delay of z2 causing the following
notes G and A to be played one beat late (into the next bar).
Analysis: The second control command introduces a beat delay because
delta_time is not zero when the function write_event is called. (Delta_time
is not zero after a rest so that the following note will be delayed.)
Fix: write_event should not introduce any delay, so that delta_time was
replaced by 0 in the function call mf_write_midi_event(..). The function
write_event is also called to turn on (off) portamento, to handle
pitch_bend, pedal on and pedal off MIDI commands. (Hopefully, this
change does not introduce a bug in the other functions.)
Apply security patches from Debian.
Changes include:
(Mike Scott) The 'y' spacing character used by Barfly and
abcm2ps was being silently dropped in parseabc.c. Added
support for this (including a length specifier - is this
used by anything?) to parseabc.c and abc2abc.c; stubs in
the other modules including yaps mean they behave as before.
http://lists.debian.org/debian-security-announce/debian-security-announce-2006/msg00127.html
abcMIDI is a package of programs developed by James Allwright for
processing ABC music notation files. It consists of several programs:
abc2midi, abc2abc, yaps, and midi2abc.