Multiperson Score Editing
It would be awesome if, similar to Google Docs, you could use MuseScore with other people and edit scores at the same time and be able to see each other's changes. Can there be a way people log in to MuseScore 3 and share scores with others, letting them see the changes they make? My friend and I work on marching band shows together and it's difficult to incorporate the changes both of us make without overriding the other's.
I know there's a way to use a VM on the same wifi network from different computers so that you can run the instance at the same time as someone else but that's messy and difficult and involved. MuseScore Online would be a w e s o m e .
Comments
I always do wonder about how this is supposed to work/be useful.
I mean, do you share the screen and only one of you inputs at a given time, but both can do so? (if so, perhaps using TeamViewer or something VNC-like could be a workaround for you?)
Or do you actually input music both at the same time. And if so, would you expect to be able to edit the same measure, affecting each others measure spacing?
How does that work when you're inputting notes whilst the other person selected all and issues a transpose command at the same time?
MuseScore 3 is software app, not a cloud service.
I use git for that.
In reply to MuseScore 3 is software app,… by woland
Even git doesn't allow for parallel edits at the same or nearby spots without cause conflicts
In reply to Even git doesn't allow for… by Jojo-Schmitz
True. But it makes teamworking posible (and easy).
You can use git diff or MuseScore's diff to avoid conflicts :)
FWIW, in theory the architecture of MuseScore would allow it to be extended that way (after great effort, of course). Operation that can modify the score are generally encapsulated in a function surrounded by startCmd() / endCmd(), and we already updating multiple views of a score at once (for the documents stacked side-by-side views, for instance). So it does seem could build a collaborative editing service on this foundation.
Saying it's possible and actually getting it done are entirely different things, though. Probably would be many person-months (perhaps even -years) of effort.
In reply to FWIW, in theory the… by Marc Sabatella
I have a more primitive idea (a simpler system), though not exactly the same thing:
People select the part to write.
Each of them writes and records their own part.
When the written part is sent to the server, a software (or script) merges these partitions into a separate score. (The main score is re-created each time a part is updated).
example:
[Dir] // has some id. eg: id="xyz-01234"
Part 00.mscz // Read only. *1
Part-01.mscz //uploaded by user-01
Part-02.mscz //uploaded by user-02
Part-03.mscz //uploaded by user-03
Part-04.mscz //uploaded by user-...
Part-05.mscz //uploaded by user-...
Part-06.mscz //uploaded by user-...
Part-07.mscz //uploaded by user-...
Part-08.mscz //uploaded by user-...
...
Part-nn.mscz //uploaded by user-...
Main-00.mscz //Automatically generated by the server.
*1: This is the basic score that each user gets to work with, Including the melody or chords to work on. And this part is loaded by the person who started the work (the owner of the job).
PS: This part cannot be changed until the whole work is finished.
Of course, how this should be managed and other issues should be considered.
In reply to I have a more primitive idea… by Ziya Mete Demircan
(Original post owner, different account)
The way I thought of it was as an instance of MuseScore running on the cloud or on the owner's computer. Two people (score owner, friend) Both computers people input, and the computer running the server would process changes to the score on a first come first serve basis, as well as show what notes are selected or where playback is occurring with different colors and name flags. This means that if it were run on the score owner's computer, it would have a bias for the owner and process their decisions first. However, setting up a cloud service for MuseScore would be quite involved. It'd be easier to run it locally.