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

MIDI 1.0 MPE / MIDI 2.0 Per-Note Abstractions #118

Open
1 task
orchetect opened this issue Jun 20, 2022 · 1 comment
Open
1 task

MIDI 1.0 MPE / MIDI 2.0 Per-Note Abstractions #118

orchetect opened this issue Jun 20, 2022 · 1 comment
Labels
💡 new feature New feature request

Comments

@orchetect
Copy link
Owner

MIDI 1.0 MPE / MIDI 2.0 Per-Note Abstractions

  • Explore feasibility of adding MPE / MIDI 2.0 Per-Note Abstractions.

M2-104-UM Universal MIDI Packet (UMP) Format and MIDI 2.0 Protocol, page 53:

Using Note Number Rotation, Per-Note Pitch, and Per-Note Management Message for Independent Per-Note Expression

A MIDI 2.0 Protocol Sender can have fully independent control over individual Notes, even applied to simultaneous Notes on the same pitch. MIDI Polyphonic Expression (MPE) on the MIDI 1.0 Protocol uses a Channel Rotation mechanism for this kind of flexible expressive control with up to 16 notes of polyphony. In the MIDI 2.0 Protocol, a Note Number Rotation mechanism can replace the Channel Rotation mechanism for some applications. This improves on MPE by utilizing only a single MIDI Channel while providing polyphony of up to 128 notes.

@orchetect orchetect added the 💡 new feature New feature request label Jun 20, 2022
@orchetect
Copy link
Owner Author

MIDI 2.0 Per-Note Events have been implemented in MIDIKit.

The Spec defines ways to use them. Abstractions could be added to aid in this but they would need to be as broadly applicable as possible for a consumer of the library to find any utility in their presence.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💡 new feature New feature request
Projects
None yet
Development

No branches or pull requests

1 participant