Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Win32 music driver rewrite #6685

Closed
DorpsGek opened this issue Mar 11, 2018 · 3 comments
Closed

Win32 music driver rewrite #6685

DorpsGek opened this issue Mar 11, 2018 · 3 comments
Labels
flyspray This issue is imported from FlySpray (https://bugs.openttd.org/) patch from FlySpray This issue is in fact a Patch, but imported from FlySrpay

Comments

@DorpsGek
Copy link
Member

nielsm opened the ticket and wrote:

This is a complete rip-out and rewrite of the Win32 music driver. The current Win32 music driver uses MCI, which is poorly supported on modern Windows versions, and causes large pauses between songs. The DirectMusic driver doesn't have those issues, but it's still a technology marked "deprecated" and not shipped with current Windows SDK versions.

This rewrite implements a lower level driver with a new parser for MIDI files, and manages timing to send the data to the synthesizer in correct order. The MidiFile class implemented is intended to be cross-platform and could be used to implementing similar lower-level playback on other platforms. Handling the raw MIDI data directly should also allow for reading music from other sources than standard MIDI files, e.g. it may allow reading the ROLAND.CAT/GM.CAT files from the DOS version of TTD, to use that as a music source instead.

Attachments

Reported version: trunk
Operating system: Windows


This issue was imported from FlySpray: https://bugs.openttd.org/task/6685
@DorpsGek
Copy link
Member Author

nielsm wrote:

This depends on the changes in #6684, except for the DirectMusic part of the patch.


This comment was imported from FlySpray: https://bugs.openttd.org/task/6685#comment14872

@DorpsGek DorpsGek added Core flyspray This issue is imported from FlySpray (https://bugs.openttd.org/) patch from FlySpray This issue is in fact a Patch, but imported from FlySrpay labels Apr 7, 2018
@frosch123 frosch123 removed the Core label Apr 14, 2018
@nielsmh
Copy link
Contributor

nielsmh commented Apr 26, 2018

This is now contained in PR #6749 and can be closed.

nielsmh added a commit to nielsmh/OpenTTD that referenced this issue Apr 27, 2018
…g on MCI

MCI MIDI is poorly supported on newer versions of Windows and can cause large
delays at the beginning of tracks.

The new driver is based on a from-scratch reader for Standard MIDI Files. This
should be re-usable in other music drivers too, and can allow for finer control
of playback in general.

It also provides a better framework for reading MIDI data from other formats
than just SMF.
nielsmh added a commit to nielsmh/OpenTTD that referenced this issue Apr 29, 2018
…g on MCI

MCI MIDI is poorly supported on newer versions of Windows and can cause large
delays at the beginning of tracks.

The new driver is based on a from-scratch reader for Standard MIDI Files. This
should be re-usable in other music drivers too, and can allow for finer control
of playback in general.

It also provides a better framework for reading MIDI data from other formats
than just SMF.
nielsmh added a commit to nielsmh/OpenTTD that referenced this issue Apr 30, 2018
…g on MCI

MCI MIDI is poorly supported on newer versions of Windows and can cause large
delays at the beginning of tracks.

The new driver is based on a from-scratch reader for Standard MIDI Files. This
should be re-usable in other music drivers too, and can allow for finer control
of playback in general.

It also provides a better framework for reading MIDI data from other formats
than just SMF.
nielsmh added a commit to nielsmh/OpenTTD that referenced this issue Apr 30, 2018
…g on MCI

MCI MIDI is poorly supported on newer versions of Windows and can cause large
delays at the beginning of tracks.

The new driver is based on a from-scratch reader for Standard MIDI Files. This
should be re-usable in other music drivers too, and can allow for finer control
of playback in general.

It also provides a better framework for reading MIDI data from other formats
than just SMF.
nielsmh added a commit to nielsmh/OpenTTD that referenced this issue May 1, 2018
…g on MCI

MCI MIDI is poorly supported on newer versions of Windows and can cause large
delays at the beginning of tracks.

The new driver is based on a from-scratch reader for Standard MIDI Files. This
should be re-usable in other music drivers too, and can allow for finer control
of playback in general.

It also provides a better framework for reading MIDI data from other formats
than just SMF.
nielsmh added a commit to nielsmh/OpenTTD that referenced this issue May 1, 2018
…g on MCI

MCI MIDI is poorly supported on newer versions of Windows and can cause large
delays at the beginning of tracks.

The new driver is based on a from-scratch reader for Standard MIDI Files. This
should be re-usable in other music drivers too, and can allow for finer control
of playback in general.

It also provides a better framework for reading MIDI data from other formats
than just SMF.
michicc pushed a commit that referenced this issue May 1, 2018
MCI MIDI is poorly supported on newer versions of Windows and can cause large
delays at the beginning of tracks.

The new driver is based on a from-scratch reader for Standard MIDI Files. This
should be re-usable in other music drivers too, and can allow for finer control
of playback in general.

It also provides a better framework for reading MIDI data from other formats
than just SMF.
@michicc michicc closed this as completed May 6, 2018
@michicc
Copy link
Member

michicc commented May 6, 2018

Was merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
flyspray This issue is imported from FlySpray (https://bugs.openttd.org/) patch from FlySpray This issue is in fact a Patch, but imported from FlySrpay
Projects
None yet
Development

No branches or pull requests

4 participants