Pulp MIDI Converter

I finally had a chance to finish and publish the python conversion utility. Details are available here: https://github.com/ryanbeard82/Python_Midi-to-JSON

Refer to the markdown file for instructions, but the package is available on PyPi and can be installed in any environment running python 3.9.* or higher with pip install playdate-midi-converter

Sorry to be a loser, but any chance of getting a compiled version of this?

If I knew how to compile Python I wouldnt be using Pulp lol

3 Likes

Not a loser at all - it is actually a compiled utility, there's just no GUI. It's a command line utility. I'm working on a video tutorial, but check the readme file in the GitRepo (also available on PyPi here). Assuming you have Python 3.9.* installed, it's very easy to use, and other than running playdate-pulp-midi after install, everything else uses prompts to the user (e.g. "would you like to save your file Y/n").

v0.0.2 was released. Minor bug fixes, and added long description to PyPi project.

This is awesome. And I know it's very alpha, but unfortunately after trying about 20 midi's from a variety of different sources, only had 1 actually convert properly and sound like music.

Looking forward to more development on this though!

Thanks! Appreciate the feedback. A lot of default midi file exports are not going to work well. I need to build in some rounding to account for off nominal note durations. Would you be willing to share one of the midi files for testing purposes?

Blossom-Time.zip (4.9 KB)

Here's a midi file I would love to be able to hear in Pulp.

Hi @Jongjungbu - finally had some time to review your MIDI file. There are a few issues with this file.

  1. File Type 0: This file uses file type 0, meaning one track contains all the channel contents. This should be converted to Type 1. There are a few tools that can help - any DAW, or specialty SW like MidiYodi.

  2. Polyphony: Even after being split, the polyphony will be problematic. The Piano track is wholly incompatible. All of the audio channels in the Pulp engine are monophonic - they can only play one note at a time. The Bassoon Solo track also has polyphonic moments. To maximize your results, you could split much of the piano across some of the oscillator tracks in Pulp - just reserve one for the lead/solo...and probably avoid the noise channel for this one.

  1. Time Signature: there is no native 3/4 support in Pulp. You can certainly write in 3/4, but it will be pretty hard to edit after the fact. Not a show stopper, the conversion utility doesn't care because Pulp doesn't care, just something to be mindful of.
3 Likes

This is amazing work @Bro-Code

I'll be sure to follow the progress!