¿Existe una forma mejor de trabajar en una partitura en colaboración en tiempo real?

He luchado con este tema durante mucho tiempo desde que edito partituras con algunos amigos al mismo tiempo y encontré algunas soluciones, pero ninguna de ellas parece tan eficiente para el flujo de trabajo.

Principalmente uso MuseScore porque es muy útil (y estoy ansioso por ver los cambios para MuseScore 4 cuando lo lancen). Pero la colaboración en tiempo real no parece estar planeada en el corto plazo.

Como solución alternativa, encontré útil usar Box Drive para guardar cualquier cambio y compartir la pantalla en Discord, pero el problema es que las otras personas no pueden hacer nada más que hablar hasta que dejo de compartir la pantalla, cierro MuseScore y luego alguien más abre el pantalla de archivos y recursos compartidos. Tener un solo editor no es útil para la eficiencia.

Entonces, mientras escribimos para artistas reales, el enfoque principal es la notación, y MIDI/Playback se encuentra en segundo lugar (al menos hasta ahora). Y, como he trabajado con LilyPond durante bastante tiempo, pensé que podría ser más fácil trabajar con LilyPond en cuanto a la colaboración en tiempo real, ya que es solo texto.

Así que probé lo que pensé que podría ser útil para eso: VSCode, la extensión "VSLilyPond" de lhl2617 (este tipo es increíble, gracias por responder a mis preguntas anteriores) y la extensión "Live Share" de Microsoft.

El gran problema con esto es que Live Share no admite archivos binarios, y eso significa PDF y algunos otros formatos. Eso no solo afecta a los usuarios de LilyPond, sino también a los usuarios de LaTeX.

Entonces pensé que una solución a esto podría ser un lector de PDF que se vuelve a cargar cuando ocurre algún cambio.

Uso una Mac (con MacOS High Sierra 10.13.6, pero probablemente me actualice a Mojave cuando se lance MuseScore 4, que es la última versión de MacOS que ejecuta LilyPond), por lo que si busco un recurso útil, "Skim" encaja lo mejor para eso. Pero cuando se trabaja con archivos en Box Drive, siempre falla cuando alguien más guarda el archivo (solo recarga correctamente una vez o ninguna, y con demasiada latencia). ¿Debería usar Preview.app y cambiar algunas cosas con XCode para deshabilitar la barra lateral y ver si funciona?

No estoy seguro de Windows ni Linux, pero he leído que para Windows "Sumatra PDF" funciona bien (lo probé con Wine en MacOS y funciona bien), pero no sé si algo como lo que sucedió en MacOS con Skim también pasaría. Y la única información que tengo sobre Linux es que Evince funciona para esto, pero me pregunto cómo difiere con los archivos en Box Drive (¿hay Box Drive para distribuciones de Linux? Si no, ese podría ser otro problema si alguien usa Linux. ¿Quizás usar otro servicio?).

Si alguien sabe algo que pueda funcionar, incluso si no es demasiado sencillo o incluso complicado, agradecería cualquier idea.

No puedo proporcionarle una solución final , pero aquí hay una idea. Los sistemas modernos admiten "suscripciones" de cambio de archivos, y se podría escribir un programa básico para "recargar" el pdf cada vez que se modifique. Por ejemplo, esto podría lograrse usando PyQt, a través del motor web Qt (basado en Webkit) que puede mostrar documentos PDF con la biblioteca PDF.js: de esta manera puede tener un solo programa que monitorea los archivos y los recarga manteniendo el página actual/zoom.
¿Es lo que dices similar a la primera respuesta a esta pregunta ? Aunque, solo usa HTML + JS
No sé a qué respuesta se refiere (depende del orden que esté usando), pero, además de los programas enumerados, la respuesta basada en HTML es parcialmente lo que quise decir (pero requiere soporte directo del navegador de pdf lectura, debido a la <embed>etiqueta); el propio programa se encargaría de actualizar la visualización sólo cuando fuera necesario.
@musicamante Haré todo lo posible para comprender cómo funcionan Python, PDF.js y QtWebEngine. Espero que haga que mi flujo de trabajo sea más fluido. Por ahora solo sé algunas cosas sobre HTML y CSS, por eso la respuesta con la <embed>etiqueta me resultaba familiar. Pero gracias de todos modos.
python tiene una curva de aprendizaje increíblemente fácil ya que es muy intuitivo y tiene una sintaxis muy clara que ayuda mucho tanto en el aprendizaje como en la programación; desafortunadamente Qt (como en PyQt, su enlace python) es mucho más complejo, ya que es un conjunto de herramientas enorme con docenas de módulos y miles de clases y funciones: lo he estado usando y estudiando constantemente durante más de 5 años, y hay todavía momentos en los que descubro algo que ni siquiera sabía hoy en día. Hacer un programa como este no es tan difícil, pero aprender a hacerlo requiere algo de tiempo y experiencia tanto en Python como en PyQt.
Intenté aprender Python hace algunos años, pero no tuve tiempo, así que lo dejé. Pero me interesa aprender Python y programar, ya que me he encontrado con algunas situaciones en las que lo necesito totalmente (como esta). Así que tendré en cuenta PyQt y probaré algunas cosas.

Respuestas (3)

El gran problema con esto es que Live Share no admite archivos binarios, y eso significa PDF y algunos otros formatos. Eso no solo afecta a los usuarios de LilyPond, sino también a los usuarios de LaTeX.

Quizás una solución para usted serían las herramientas utilizadas para el desarrollo de software colaborativo como git o SVN. Solo los archivos de origen (texto) residen en el repositorio. Cada usuario descarga su código fuente, lo compila en su propia computadora (a pdf o cualquier otro formato binario), realiza cambios y carga los archivos fuente modificados al repositorio.

Esto requiere algunas habilidades técnicas, pero en algunos tipos de proyectos puede funcionar muy bien. Además, hay algunas características adicionales como el seguimiento de cambios y revertirlos.

Estaba pensando en usar Git. Sin embargo, no estoy seguro del clima que sería o no menos en tiempo real. Porque hacemos cambios constantemente para ver el renderizado y editamos el mismo archivo a la vez. Así que preferiría trabajar mientras veo las aportaciones de todos.

Otra solución sería compartir la pantalla donde un usuario aloja la sesión y otro usuario puede controlar el mouse y el teclado para realizar cambios en cualquier editor de música que desee. Hay varios programas para hacerlo, en particular, algunos de los programas de videollamadas populares tienen esta funcionalidad.

Una solución particular que puede considerar es VNC, Virtual Network Computing. Permite que múltiples usuarios vean y controlen una sesión gráfica. Es muy eficiente, en particular, funciona de manera muy confiable incluso con un ancho de banda bajo. VNC requiere un poco de esfuerzo para configurar, en particular para el host, pero luego es fácil de usar. Hay muchas implementaciones de VNC para varias plataformas. Algunos de ellos permiten a los usuarios conectarse a través de un navegador web, por lo que no necesitan instalar ningún software adicional.

Pero este es un uso uno por uno, ¿verdad? Para proyectos pequeños podría funcionar bien, pero para proyectos grandes creo que es mejor que todos hagan ciertas cosas a la vez, especialmente con una fecha límite.
@KaiVinter Sí, todos trabajan en la misma pantalla virtual, por lo que todos controlan el mouse y el teclado, pero, por supuesto, es un caos si realmente intentan hacerlo simultáneamente...
@KaiVinter si puede dividir la partitura en secciones, puede configurar una sesión VNC separada en cada sección.
@toolforger ¿Cómo funcionaría eso? ¿Quiere decir abrir una ventana diferente de MuseScore (por ejemplo) para cada sesión? No creo que MS pueda abrir diferentes ventanas sino pestañas. Sin embargo, puede dividir la vista, pero solo a la mitad, lo que no es útil cuando se trabaja con 3 o más personas. Además, ¿es posible abrir una sesión de VNC para una aplicación específica?
Esto depende de la implementación de VNC, pero algunos de ellos funcionan en escritorios virtuales. Entonces sí, debería poder abrir programas de forma independiente en cada uno de los escritorios.
@KaiVinter Depende del software del servidor VNC. Se han mencionado los escritorios virtuales, pero nada impide que un servidor VNC comparta solo una ventana, por ejemplo, TightVNC hace exactamente eso. (Palabras clave de Google utilizadas: ventana de aplicación única vnc).

Respondiendo a mi propia pregunta porque descubrí que para MacOS hay "LivePDFviewer" en la App Store. Se recarga automáticamente y no falla con los archivos en Box.

Aún así, no hay "apuntar y hacer clic", pero es útil. Incluso tiene un modo nocturno, ¡genial!

Pero gracias a todas las demás respuestas! Aprendí algunas cosas útiles en el camino.