Potential Enhancements To Evaluate
The analysis has not started yet. We will wait after the official launch of version 3. We do have a lot of ideas and suggestions in store. Depending on whether these features break the API or not, they may make it into version 3.x or be deployed in v4.
If you have suggestions, please post them for discussion to the Feature Request category of our GitHub Discussions.
Ideas & Suggestions to Evaluate
If you feel any of these ideas should be given priority, plese explain why in the Feature Request category of our GitHub Discussions so I can properly triage them.
Explore compatibility with WebMidiLink. Could we create an output that points to a WebMidiLinked device?
Could we allow
WebMidi.timeto be reset? (see discussion #213)
Add throttling or delay option to
sendSysex(see discussion #235).
Calculate BPM from clock messages (Discussion #177)
Allow the first argument of
output.playNote( )to be ‘0:0’ as ‘A0’, ‘7:3’ as ‘E:3’ and so on.
Add a "mute" option for inputs/outputs
Include the ability to add MIDI event listeners at the WebMidi.js level (Issue #138)
Emit events on
send()so outbound MIDI messages can be listened for (Discussion #171)
Calculate time values and make them directly available for
Make Istanbul (nyc) break down the coverage stats by test file.
Add the ability to send grouped messages for CC events (and potentially others)
Add expliocit support for MIDI Polyphonic Expressions.
Add explicit support for Universal System Exclusive Messages
Add ability to inject Jazz-Plugin code for browsers with no native Web MIDI API support.
Add the option to create sysex plugins for various devices forum thread
Add continuous integration tool
Add ability to read/write MIDI files
Solid timing, midi clock, sync, transport functionality
Helper functions that help to deal with sysex checksum from specific manufacturer (Roland, checksum, etc.)
Add explicit support for Sample Dump Format (see discussion on forum)
Allow third-party developers to develop modules that facilitate encoding and decoding of device-specific sysex messages (see forum discussion)
Add timing capabilities such as syncing with Tone.js or being able to schedule events using musical notes.
Check if something specific needs to be done to support Electron (this discussion).
Evaluate whether if would be worth it to switch from the
midimodule to the
web-midi-testmodule for unit tests (discussion here).