chrisdonahue / nesmdb

The NES Music Database: use machine learning to compose music for the Nintendo Entertainment System!
MIT License
450 stars 39 forks source link

Python 3 support #11

Open duhaime opened 4 years ago

duhaime commented 4 years ago

Hello, thanks very much for this really incredible work! I've been reading some of your papers (including your dissertation, which is really fantastic!) and have learned a great deal from your writing. I have lots of questions on downstream machine learning tasks but this probably isn't the place for those...

I was hoping to use this library for some work in Python 3, and it looked like a few folks started some pull requests to offer Python 3 support, but none had quite sorted out the differences between byte sequence data in Python 2 and 3, so I wanted to give it a go.

In any event, this PR offers Python 3 support for the library. I also updated the setup.py file to allow users with OSX machines to install the VGMPlay dependency.

I also made the questionable decision to remove the errors that used to spring when one failed to build VGMPlay. My thought was that, rather than force e.g. Windows users to have to hack the VGMPlay Makefile in setup.py, maybe it'd make sense to let users compile VGMPlay and then just move the executable to the location on the filesystem where this library is located after installation. That way users like the Windows OS user in the issue tracker could compile the executable using whatever means necessary and then just move the executable to the proper location for use by this library.

In any event I'm happy to change any element of this if you like. Either way thanks again for this great work!

e729d847c3b8b879-1up-mario-mushroom-nes-gifs-get-the-best-gif-on-giphy

duhaime commented 4 years ago

(I should add that my chief use case and test case was your notebook for converting midi files to NES wav files.)

chrisdonahue commented 4 years ago

Whoa this looks like a heroic and monumental effort. Thx so much for this! I will do some testing on this ASAP and get back to you.