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

Implement SysEx decoding #1

Open
nmlgc opened this issue Feb 20, 2024 · 0 comments
Open

Implement SysEx decoding #1

nmlgc opened this issue Feb 20, 2024 · 0 comments

Comments

@nmlgc
Copy link
Owner

nmlgc commented Feb 20, 2024

As a Yamaha kid, I have always enjoyed zero-configuration decoding of XG SysEx messages inside my MIDI sequencer. This made SysEx editing as natural as editing any of the standard MIDI events:
Screenshot of the MIDI Event Viewer in Yamaha's XGworks, showing off its automatic XG SysEx decoding feature

But once I started exploring MIDI devices from other vendors, I realized that this was actually not a common feature in sequencers at all. In fact, non-Yamaha tooling around SysEx is so bad that it led to a widespread perception of SysEx being "complicated", "outdated", or "a black art", which are words I would have never used to describe SysEx. Over 30 years of bad tooling have ingrained this mindset so deeply in today's MIDI hobbyist scene that they don't even seem to realize that zero-configuration, no-bullshit SysEx decoding is a crucial feature that can set any MIDI tool apart from its competition. (And if they did, they need better SEO.) As a result, this is the single most important MIDI-related thing I'd like to see happen in my lifetime. I can't think of a more appropriate first issue for this project.

So let's read all the manuals from every vendor, turn them into a single piece of code that parses arbitrary SysEx byte strings into structures that format themselves into strings, and integrate it into the dump output. Once funded via the ReC98 storefront, I will start with the Roland Sound Canvas series because both its 90s and modern tools are particularly bad. The core implementation will go into a separate crate because ultimately, this is something that every MIDI tool should depend on.

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