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

Discord rich presence integration #19369

Closed
navickasm opened this issue Sep 11, 2023 · 3 comments
Closed

Discord rich presence integration #19369

navickasm opened this issue Sep 11, 2023 · 3 comments
Labels
community Issues particularly suitable for community contributors to work on feature request Used to suggest improvements or new capabilities needs info More information is required before action can be taken

Comments

@navickasm
Copy link

Your idea

Allow the user to, when using Musescore, have specific information about what they are doing show up as a "now playing" (using the Game SDK) in Discord.

Problem to be solved

Currently, a QML plugin has to be enabled which makes a file with score information AND a node.js server running on the user's computer that has to be enabled every single time MS is run, which reads this file and does the discord stuff.

It can be accessed at https://github.com/FireController1847/musescore-rich-presence.

Prior art

No response

Additional context

Potential design ideas:
The LargeImage and LargeText would be the MS4 logo and "Musescore 4" respectively
The Details would have the status/page (i.e. "Main Menu", "Editing Plugins", "Working on Score [Name]", etc.)
The ActivityTimestamps would have a Start and the UNIX timestamp to show how much time is elapsed
State would alternate through different attributes of the score (omposer/arranger, number of parts, number of measures, number of pages, etc)

If this feature is implemented, it would be nice to customize exactly what is shown (especially the different things that appear in the State), even if it's through a configuration file not accessible in the actual app to avoid unnecessary clutter that an average person wouldn't need.

There's an SDK guide for C++ but I don't use C++ that much so I'm not sure if it will be much help (I think it will though):
https://discord.com/developers/docs/game-sdk/sdk-starter-guide

Also a helpful reference image for where every thing goes:
Screenshot 2023-09-11 173442

@muse-bot muse-bot added the feature request Used to suggest improvements or new capabilities label Sep 11, 2023
@cbjeukendrup cbjeukendrup added the community Issues particularly suitable for community contributors to work on label Sep 12, 2023
@shoogle
Copy link
Contributor

shoogle commented Sep 27, 2023

I haven't been able to find any licensing information for Discord's SDK, so I'm not sure whether we can use it in a GPLv3 application like MuseScore.

@shoogle shoogle added the needs info More information is required before action can be taken label Sep 27, 2023
@navickasm
Copy link
Author

If this is still worth pursuing, I believe the only source of licensing information is the Discord Developer Policy, available here.

@shoogle
Copy link
Contributor

shoogle commented Jun 24, 2024

I think this kind of functionality is best left to a plugin or extension. Many users would object to having software broadcasting what they are doing, or even the capability of doing so. Those that do want this might ask for integrations with other clients besides Discord. And then there's the performance and maintenance burden to consider, all for negligible benefit.

All told, I don't think we want this in MuseScore's codebase, but if there's anything we can do to make it easier for plugin/extension developers to implement this then please let us know. On the face of it, something like this should be possible without requiring a separate Node.js server or having to run the plugin manually on each launch.

@shoogle shoogle closed this as completed Jun 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
community Issues particularly suitable for community contributors to work on feature request Used to suggest improvements or new capabilities needs info More information is required before action can be taken
Projects
Status: Done
Development

No branches or pull requests

4 participants