Fancy multiplatform rewrite of an ancient, simple Windows app for playing MIDI files.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
TestFiles
bin
images
installer
.gitignore
DirectNoise.aps
DirectNoise.ico
DirectNoise.rc
DirectNoise.vcproj
DirectNoise.vcxproj
Makefile
Makefile.linux
MidiPlayer.cpp
MidiPlayer.h
MidiPlayer.sln
MidiPlayerApp.cpp
MidiPlayerApp.h
MidiTrackPanel.cpp
MidiTrackPanel.h
README.md
keyicon.ico
keyicon.png
resource.h

README.md

MidiPlayer

MIDIPlayer is a free MIDI file player for Windows, Linux, and OSX with detailed file information display including individual track details (including title and note data).

It was originally released on http://zetacentauri.com and was downloaded more than 20,000 times before being open-sourced.

MIDIPlayer 2 Screenshot

A prebuilt Windows installer is available in the installer directory:

https://github.com/Xangis/MIDIPlayer/blob/master/installer/MIDIPlayer2.11Setup.exe

It is licensed under the terms of the MIT license.

Building

The UI for this application is written using wxWidgets and you'll need that in order to build. You can get it here:

http://wxwidgets.org/

Sound playback requires RtMidi, available here:

http://www.music.mcgill.ca/~gary/rtmidi/

Windows

Use the Visual Studio project. You'll probably have to set the wxWidgets include and library paths in order to build.

Linux

To get rtmidi and wxWidgets, you can install then using your package manager:

sudo apt-get install librtmidi-dev libwxgtk3.0-dev

Build the app by running "Make -f Makefile.linux". You may need to edit some path settings if it doesn't see your rtmidi libraries.

You're probably better off downloading RtMidi from their website rather than using the version available in your Linux distribution's repositories.

OSX

Building is similar to linux, but just run "make". You'll have to have the command-line compiler installed for that to work.

Once the program is built, run "OSXLibraryPaths.sh" in the installer directory to set paths inside the application bundle.

Ths OSX build has had the least amount of testing and may need some improvements to be easier to build.

Changelog

MIDIPlayer 2.11 Changes (January 2017)

  • Fixed window redraw problem when loading a new song when one is already loaded.
  • Added pause button.

MIDIPlayer 2.1 Changes (October 2016)

  • Added some error handling for loading files with incorrect track length data.
  • Changed file reading to binary (why wasn't it before? WTF?)

MIDIPlayer 2 (October 2016)

A reimplementation of MIDI playback, but with a nice detailed interface.

A new MIDI engine has been written from scratch and it no longer relies on any DirectX code. It uses RtMidi for platform-agnostic MIDI playback.

It also shows the individual tracks of the MIDI file.

MIDIPlayer 1

An ancient, simple Windows app for playing MIDI files. Originally released at http://zetacentauri.com

MIDIPlayer Screenshot

A pre-compiled binary is in the bin directory.

Requires DirectMusic, which is no longer supported on 64-bit Windows machines.

TODO

  • Fix the drag-and-drop destructor crash so we can re-enable drag and drop. This appears to be a bug in wxWidgets (it crashes in their pointer handling), but haven't confirmed.
  • More + better encapsulation for the MIDIFile class. Some things are ugly for the sake of expediency.

Development Status

I consider this program to be feature complete, but I still actively maintain it.

I am willing to accept pull requests if you have improvements to contribute.