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

Add ability to read/write "standard" MIDI files. #5

Open
duhrer opened this issue Jan 19, 2023 · 0 comments
Open

Add ability to read/write "standard" MIDI files. #5

duhrer opened this issue Jan 19, 2023 · 0 comments

Comments

@duhrer
Copy link
Collaborator

duhrer commented Jan 19, 2023

This ticket covers adding support for reading and writing "standard" MIDI files. This would support:

  1. Capturing, reusing, and transforming performed MIDI messages.
  2. Saving things like system exclusive messages required to configure devices to external files and loading them in code.
  3. Accessing the wealth of historical examples of music saved in this format.
  4. Generating synthetic tracks for use with external devices and programs (for example, "Black MIDI" compositions played using Synthesia).

This work would be added in a separate part of the youme namespace (for example youme.smf) and would be "opt in", i.e. authors would have to reference that file to add support in their work. There would be a separate page of documentation linked from the main docs.

My thinking is that the initial implementation probably won't include the later extensions to the standard such as karaoke files, but the work here should be tested with those files if possible to confirm that they load what they can without error.

I did review "prior art", including jzz-midi-smf, smfplayer, picoaudio.js. Each of these provides a parser coupled with a player, and redefines many of the concepts we already have for dealing with MIDI messages. It seemed more appropriate to extend what we have, i.e. we need new mechanisms for reading/writing things like headers and tracks, but can reuse the functions we have to read/write MIDI messages.

As part of that research, I found the test-midi-files package provided by JazzSoft under an MIT License. Although that package provides a player as well, the player is not required to use the test files, and the test files cover many things I would like to verify support for.

duhrer added a commit to duhrer/youme that referenced this issue Jan 26, 2023
duhrer added a commit to duhrer/youme that referenced this issue Jan 30, 2023
duhrer added a commit to duhrer/youme that referenced this issue Feb 1, 2023
duhrer added a commit to duhrer/youme that referenced this issue Feb 2, 2023
duhrer added a commit to duhrer/youme that referenced this issue Feb 2, 2023
duhrer added a commit to duhrer/youme that referenced this issue Feb 3, 2023
duhrer added a commit to duhrer/youme that referenced this issue Feb 13, 2023
duhrer added a commit to duhrer/youme that referenced this issue Feb 13, 2023
duhrer added a commit to duhrer/youme that referenced this issue Feb 13, 2023
duhrer added a commit to duhrer/youme that referenced this issue Feb 15, 2023
duhrer added a commit to duhrer/youme that referenced this issue Feb 15, 2023
duhrer added a commit to duhrer/youme that referenced this issue Feb 17, 2023
duhrer added a commit to duhrer/youme that referenced this issue Feb 20, 2023
duhrer added a commit to duhrer/youme that referenced this issue Feb 20, 2023
duhrer added a commit to duhrer/youme that referenced this issue Feb 21, 2023
duhrer added a commit to duhrer/youme that referenced this issue Mar 8, 2023
duhrer added a commit to duhrer/youme that referenced this issue Mar 8, 2023
duhrer added a commit to duhrer/youme that referenced this issue Mar 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant