Roadmap for version 3.x
Enhancements Still Remaining
Publish TypeScript definitions to DefinitelyTyped when v3 is stable (they are currently available in the
InputChannel.EVENTSto include all
There is something in
InputChannel.test.jsthat prevents the tests from running correctly in
A combined CC0 / CC32 / ProgChange method to call program changes with bank selection in a single method
The callback for
Input.addListener()should probably have both a
portproperty when the target is not the same as the port. Perhaps both should be kept everywhere for consistency.
Enhancement Already Baked In
Added triggering of
filteroption to allow listening to only a subset of events (e.g. specific controller change or NRPN messages, discussed in PR #88)
Add a way to forward inbound messages on an
Inputobject to an
Output(to behave like a physical MIDI THRU port). This could be expanded to a more elaborate filtering and routing system (example)
Add mechanism to Generate TypeScript type definitions (.d.ts files)
InputChannelso it it is possible to check if a note is currently playing or not. This allows to check for chords when a noteon message is received.
Properly handle when a laptop's lid is closed then reopened (Issue #140)
As suggested by users, allow sending MSB and LSB at once when sending control change messages (Issue #57). This would have to be done for CC messages 0-31 which all have a matching LSB.
Rewrite the NRPN parsing mechanism in InputChannel. I do not think it works correctly. Here are starting points:
Add the ability to set default values for attack velocity, release velocity, etc. ( see forum discussion)
Various utility methods should probably be stashed in a
Utilsclass (e.g. getCcNameByNumber(), etc.)
Add convenience method to convert float and 7 bit:
Add the ability to individually transpose
OutputChannelobjects (Issue #20)
Move to Rollup for packaging the library (Issue #61)
Drop support for Bower (Issue #60)
Extend a proper event library to allow for modern event support (probably djipevents).
WebMidia singleton (see example here)
WebMidi should dispatch 'enabled' and 'disabled' event
Check that disable() really does disable everything
Add methods for channel mode messages
clear()method (Issue #52) [this will automatically work when browsers add support for it but will show a warning in the console until then).
Added the new (software) parameter for
requestMIDIAccess[this will automatically work when browsers add support for it).
Emit events for all channel mode messages
dataBytesproperties to the event triggered when receiving messages (#109)
Deprecate the ability to send on all channels (default behaviour). This clogs up the MIDI stream and I do not really see a good use case for it.
Add official support for Node.js (Issue #15)
Complete test suite for all objects
sendRaw()method accepting either list of integers or