These changes re-work how MIDI files are stored internally. Before, we relied on the animation system to handle playback and storage of the MIDI resource data. In this branch, I created a new MidiResource type that stores MIDI data in an array of dictionaries.
This probably isn't the most efficient way of handling things, but Godot requires a Variant type for data storage in resources and many functions. Regardless, it makes for a much better user experience when compared to using animations.
These changes re-work how MIDI files are stored internally. Before, we relied on the animation system to handle playback and storage of the MIDI resource data. In this branch, I created a new MidiResource type that stores MIDI data in an array of dictionaries.
This probably isn't the most efficient way of handling things, but Godot requires a Variant type for data storage in resources and many functions. Regardless, it makes for a much better user experience when compared to using animations.