Houston4444 / RaySession

Session manager for linux musical programs
GNU General Public License v2.0
166 stars 18 forks source link

RaySession doesn't persist Ardour session #145

Open rafrombrc opened 2 years ago

rafrombrc commented 2 years ago

When using Ardour on its own, it will default to reopening the last session for given project, as recorded in the LastUsedSnapshot tag in the instant.xml file at the project root. RaySession doesn't do this, it always opens the <PROJECT_NAME>.ardour file, regardless of what Ardour snapshot was open when RaySession was closed. This has caused me to accidentally modify some work I didn't intend to change, since I didn't notice that I wasn't on the Ardour snapshot in which I intended to be working.

It would be great if, when launching Ardour, RaySession could extract the LastUsedSnapshot value from instant.xml and open that instead of always defaulting to the original project snapshot. I poked around a bit to try to find the code that launches Ardour to see if I could make the change myself, but I didn't find it... I'd be happy to take a stab at making this change, if you could point me in the right direction.

Thanks!

Houston4444 commented 2 years ago

Hi ! I know this bug, unfortunately this is not a RaySession bug but an Ardour one. Under NSM, Ardour always starts the session file with the same name than the session folder instead to look which was the last snapshot. Anyway, because I have recently implemented the Ardour :switch: capability (which allows to switch ray/nsm session without closing and reloading ardour), I should know this part of the Ardour code enough to fix this bug easily.

the implementation of :switch: will be available when Ardour7 will be released of course.

Cheers.

rafrombrc commented 2 years ago

Ah, gotcha. That explains why I couldn't find the code where RaySession launches Ardour... because Ardour itself contains the code, implemented as part of the NSM contract.

I'm glad that you think this will be an easy fix in Ardour. I peeked at the Ardour code and saw this line (which you added when you introduced the :switch: support) that looks suspicious; it seems to be explicitly setting the session name to the empty string. But clearly I don't really know how this all works, so that might not be relevant at all.

Anyway, thanks so much for your attention!