Age | Commit message (Collapse) | Author |
|
Multi-track MIDI files are played back using separate callback chains
for each track, and this introduces the possibility of one track
becoming out of sync with the others. This was noticeable in WADs
that use multi-track MIDIs, such as Alien Vendetta. Increase the
timing resolution to microsecond precision to fix this.
|
|
When the tempo is changed, the times on all active timers must be
adjusted to match the new timing values. Add an API to do this and
invoke it when a tempo change meta event is read.
|
|
The MIDI format includes a special meta event to set the tempo of
playback, and some WADs depend on this - notably the music in Alien
Vendetta. Move the variables controlling tempo to the global scope
(they are not per-track as I previously thought) and set when the
tempo events are encountered.
This is some progress towards resolving #334, but that bug is not
yet completely fixed, because the tempo change does not
retroactively apply to OPL timers that have already been set.
|
|
Some MIDI files, such as the music tracks in AV.wad, use a second
"key on" event with a volume of zero to mean "key off". Handle this
case correctly.
|
|
This change rewrites and simplifies the copyright headers at the top
of all source files:
* Remove "Emacs style mode select" line; this line was included in
the headers for the originally released source files and appears
to be to set the file type for old versions of Emacs. I'm not sure
entirely why it was required but I don't think it is any more.
* Remove "You should have received a copy of..." text from copyright
header. This refers to the old 59 Temple Place address where the
FSF headquarters used to be located and is no longer correct.
Rather than change to the new address, just remove the paragraph
as it is superfluous anyway. This fixes #311.
* Remove ---- separator lines so that the file headers are barer
and more simplified.
|
|
The previous change to add the poll method to the music module
interface introduced a crash, as the OPL music struct does not
define a poll method.
|
|
The Windows API has an _snprintf function that is not the same as
Unix's snprintf(): if the string is truncated then no trailing NUL
character is appended. This makes the function unsafe. Define a
replacement/wrapper called M_snprintf that works the same but always
appends a trailing NUL, for safety on Windows and other OSes that
behave like this.
Do the same thing for vsnprintf(), and update HACKING to list
snprintf/vsnprintf as forbidden functions. This fixes #375;
thanks to Quasar for pointing out the different behavior of these
functions.
|
|
As part of this, add DIR_SEPARATOR_S as a string version of the
DIR_SEPARATOR macro. Change M_TempFile() to return a string allocated
on the C heap rather than the zone heap.
This is a first step towards fixing #371.
|
|
Subversion-branch: /branches/v2-branch
Subversion-revision: 2639
|
|
Subversion-branch: /trunk/chocolate-doom
Subversion-revision: 2607
|
|
Subversion-branch: /branches/v2-branch
Subversion-revision: 2537
|
|
for GENMIDI development.
Subversion-branch: /trunk/chocolate-doom
Subversion-revision: 2482
|
|
Subversion-branch: /branches/raven-branch
Subversion-revision: 2347
|
|
Alexandre Xavier).
Subversion-branch: /trunk/chocolate-doom
Subversion-revision: 2313
|
|
Subversion-branch: /branches/raven-branch
Subversion-revision: 1924
|
|
Subversion-branch: /trunk/chocolate-doom
Subversion-revision: 1913
|
|
voice of a two voice instrument. Don't discard instruments from lower
numbered MIDI channels for higher numbered MIDI channels.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1727
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1725
|
|
set from snd_samplerate in the configuration file.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1723
|
|
instrument. This should stop the ugly bleeping from the electric snare
on E1M2.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1715
|
|
voices when music is shut down.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1704
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1700
|
|
library code, so that we fall back to software emulation if we have port
access but an OPL is not detected. Fix detection of ioperm in configure.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1692
|
|
this.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1691
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1688
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1685
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1684
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1683
|
|
of instruments to offset.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1680
|
|
one octave, as per research.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1678
|
|
voices. Doom writes the same value to both operators.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1671
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1670
|
|
research with Vanilla).
Subversion-branch: /branches/opl-branch
Subversion-revision: 1668
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1664
|
|
both.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1661
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1660
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1658
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1654
|
|
them. This gives voice volume values that are almost identical to
Doom's.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1653
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1652
|
|
voice mode.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1651
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1650
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1649
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1648
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1647
|
|
still not right.
Subversion-branch: /branches/opl-branch
Subversion-revision: 1646
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1645
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1644
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1643
|
|
Subversion-branch: /branches/opl-branch
Subversion-revision: 1640
|