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

[TODO] Consider creating Device Manager function to create multiple MIDI 1.0 endpoints #348

Closed
Psychlist1972 opened this issue May 22, 2024 · 4 comments
Assignees
Labels
area-service-or-api 🖥️ Related to the Windows Service, core API, abstractions, etc. todo 🗃️ Not really a bug just something we need to do that is useful to track in the open. wontfix This will not be worked on. We hate doing this, but sometimes it's necessary.

Comments

@Psychlist1972
Copy link
Contributor

To ensure consistency in how the MIDI 1.0 endpoints are created, consider creating a MidiSrv Device Manager function which takes in a UMP endpoint and a set of parameters for which MIDI 1.0 ports to create and how they related to the groups (or pins as appropriate).

@Psychlist1972 Psychlist1972 added area-service-or-api 🖥️ Related to the Windows Service, core API, abstractions, etc. todo 🗃️ Not really a bug just something we need to do that is useful to track in the open. labels May 22, 2024
@Psychlist1972 Psychlist1972 self-assigned this May 22, 2024
@MusicMaker
Copy link

Any more details on what this entails, what does means for the API , the clients to connect or naming of the connections for users
?

@Psychlist1972
Copy link
Contributor Author

Any more details on what this entails, what does means for the API , the clients to connect or naming of the connections for users ?

Currently, each transport is responsible for creating all of its endpoints: UMP and MIDI 1.0 Data format. This task is just to create a standard way to create the MIDI 1.0 endpoints (for the older WinMM and WinRT MIDI 1.0 APIs) so we don't have the code duplicated in each of the transports/abstractions.

More detail: when a MIDI 2.0 device is connected to the UMP driver (or a MIDI 1.0 device is connected to the new driver), we create the UMP Endpoint for it with group terminal blocks and/or function blocks which indicate active groups. That is what clients using Windows MIDI Services directly see and interact with.

In order to allow apps using our existing MIDI 1.0 APIs to use those same devices, we need to create classic input/output port(s) for each active group in the UMP endpoint. We also have to ignore stream messages and translate between MIDI 1.0 data format and UMP data format (that code is already in place).

This is essentially a refactoring task.

@Psychlist1972
Copy link
Contributor Author

Related
#347
#346
#345
#344

@Psychlist1972 Psychlist1972 added the wontfix This will not be worked on. We hate doing this, but sometimes it's necessary. label Aug 16, 2024
@Psychlist1972
Copy link
Contributor Author

Gary has a slightly different approach here. Closing this.

@Psychlist1972 Psychlist1972 closed this as not planned Won't fix, can't repro, duplicate, stale Aug 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-service-or-api 🖥️ Related to the Windows Service, core API, abstractions, etc. todo 🗃️ Not really a bug just something we need to do that is useful to track in the open. wontfix This will not be worked on. We hate doing this, but sometimes it's necessary.
Projects
Status: No status
Development

No branches or pull requests

2 participants