8

I've struggled with this topic for a long time since I edit scores with some friends at the same time, and came with some workarounds, but none of them seems that efficient for the workflow.

I mainly use MuseScore as it is very useful (and I'm eager to see the changes for MuseScore 4 when they release it). But real-time collaboration doesn't seem to be planned anytime soon.

As a workaround, I found useful to use Box Drive for saving any change and sharing screen on Discord, but the issue is that the other people cannot do anything but to speak until I stop screen sharing, close MuseScore, and then someone else opens the file and shares screen. Having only one editor is not useful for efficiency.

So, as we write for real performers, the main focus is notation, and MIDI/Playback lays on second place (at least yet). And, as I've worked with LilyPond for quite a while, I thought it could be easier to work with LilyPond as for real-time collaboration, since it's just text.

So I tried what I thought could be useful for that: VSCode, "VSLilyPond" Extension by lhl2617 (this guy is awesome, thank you for answering my previous questions), and "Live Share" Extension by Microsoft.

The big problem with this is that Live Share doesn't support binary files, and that means PDF and some other formats. That does not only affect LilyPond users but also LaTeX users.

Then I thought that a workaround to this might be a PDF reader that reloads itself when any change happens.

I use a Mac (with MacOS High Sierra 10.13.6, but probably I'll be upgrading to Mojave when MuseScore 4 is released, which is the last MacOS version that runs LilyPond), so looking for a useful resource, "Skim" fits the best for that. But when working with files in Box Drive, it always crashes when someone else saves the file (it only reloads correctly once or none, and with too much latency). Should I instead use Preview.app and change some things with XCode to disable the sidebar to see if it works?

I'm not sure about Windows nor Linux, but I've read that for Windows "Sumatra PDF" works nicely (I tried it with Wine on MacOS and works well), but I don't know if anything like what happened on MacOS with Skim would happen as well. And the only information I have about Linux is that Evince works for this, but I wonder how it differs with files in Box Drive (is there Box Drive for Linux distros, though? If not, that could be another issue if someone uses Linux. Maybe use another service?).

If someone knows anything that might work, even if it's not too straightforward, or even complicated, I would appreciate any ideas.

6
  • I cannot provide you a final solution, but here's an idea. Modern systems support file change "subscriptions", and a basic program could be written to "reload" the pdf whenever the it's been modified. For example, this could achieved using PyQt, through the Qt web engine (based on Webkit) that can show PDF documents with the PDF.js library: in this way you can have a single program that monitors the files and reload them by keeping the current page/zoom. Aug 6, 2021 at 23:43
  • Is what you're saying similar to the first answer to this question ? Although, there only uses HTML+JS
    – Kai Vinter
    Aug 6, 2021 at 23:57
  • I don't know to what answer you're referring to (it depends on the order you're using), but, besides the listed programs, the HTML based answer is partially what I meant (but it requires direct browser support of pdf reading, due to the <embed> tag); the program itself would be responsible of updating the visualization only when necessary. Aug 7, 2021 at 0:04
  • @musicamante I'll try my best to understand how Python, PDF.js and QtWebEngine work. Hopefully it makes my workflow smoother. For now I just know some things about HTML and CSS, that's why the answer with the <embed> tag was familiar for me. But thank you anyways.
    – Kai Vinter
    Aug 8, 2021 at 0:04
  • python has an incredibly easy learning curve as it's very intuitive and has a very clear syntax that helps a lot in both learning and programming; unfortunately Qt (as in PyQt, its python binding) is much more complex, since it's a huge toolkit with dozens of modules and thousands of classes and functions: I've been constantly using and studying it for more than 5 years, and there are still times when I discover something I didn't know even nowadays. Doing a program like this is not that hard, but learning how to do it requires some time and experience in both python and PyQt. Aug 8, 2021 at 0:16

3 Answers 3

4

The big problem with this is that Live Share doesn't support binary files, and that means PDF and some other formats. That does not only affect LilyPond users but also LaTeX users.

Perhaps a solution for you would be tools used for collaborative software development like git or SVN. Only the source (text) files reside in the repository. Each user downloads their source, compiles it on their own computer (to pdf or whatever other binary format), makes changes and uploads modified source files back to the repository.

This requires some technical skills, but in some types of projects can work very well. Plus there are some extra features like tracking changes and rolling them back.

1
  • I was thinking about using Git. However, I'm not sure weather that would be or not less real-time. Because we make changes constantly to see the rendering, and edit the same file at once. So I'd preferably work while seeing everyone's input.
    – Kai Vinter
    Aug 7, 2021 at 2:06
4

Another solution would be screen sharing where one user hosts the session and another user can control mouse and keyboard to make changes in any music editor you want. There are various programs to do it, in particular some of the popular video call programs have this functionality.

A particular solution you may consider is VNC, Virtual Network Computing. It allows multiple users to view and control a graphical session. It's very efficient, in particular it works very reliably even at low bandwidth. VNC requires some effort to configure, in particular for the host, but then it's easy to use. There are many VNC implementations for various platforms. Some of them allow users to connect via web browser, so that they don't need to install any additional software.

6
  • But this is a one-by-one usage, right? For small projects it could work just fine, but for large projects I think it's better to have everyone do certain things at once, especially with a deadline.
    – Kai Vinter
    Aug 7, 2021 at 7:35
  • @KaiVinter Yes, everyone works on the same virtual screen, so at everyone controls mouse and keyboard, but of course it's chaos if they actually try to do it simultaneously... Aug 7, 2021 at 16:58
  • @KaiVinter if you can split the score into sections, you could set up a separate VNC session on each section.
    – toolforger
    Aug 7, 2021 at 19:26
  • @toolforger How would that work, though? You mean opening a different window of MuseScore (for example) for each session? I don't think MS is able to open different windows but tabs. It can split view though, but only in half, not useful when working with 3 or more people. Also, Is it possible to open a VNC session por an specific application?
    – Kai Vinter
    Aug 7, 2021 at 23:44
  • This depends on VNC implementation, but some of them operate on virtual desktops. Then yes, you should be able to open programs independently in each of the desktops. Aug 8, 2021 at 6:25
0

Answering my own question because I found that for MacOS there's "LivePDFviewer" in the App Store. It does auto-reload and doesn't crash with files in Box.

Still, no "Point and Click", but useful. It even has a Night Mode, so great!

But thank you all other answers! I learned some useful things on the way.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.