Hi, I've been using OpenLP for quite a while, successfully working with automated cloud-based sync between main PC at home, and laptop that I use in church. The data folder (and subfolders), and service plan folders (in My Documents) sync automatically, and all works well each week without fail. However, I've just started to use linked audio, and although I can link an audio file on either PC or laptop to a song, and have it play automatically, the problem comes when the service plan or data files are sync'd. After syncing, the song audio does not play at all (seems inaccessible) and modifying and saving the service plan results in a warning window.
The paths to the data folders are different in both computers - could that be a problem?
C:\Users\John\AppData\Roaming\openlp\data\
C:\Users\John Duffy\AppData\Roaming\openlp\data\
Is there any way round this, as it would be good to be able to sync files and also keep the linked audio working?
Comments
Currently, the full file path for audio files is stored in the database. If the audio file isn't in the expected location (eg because the expected location was under the user profile 'John Duffy' and not 'John') then it won't play.
To keep linked audio you need to have the same path on the synced location.
But I also think it would be good if OpenLP would store audio files under the Data folder as relative rather then hardcoded to a full file path.
Regards,
David.
I wonder if it is possible to change a Windows 7 user path without causing Windows to crash, either by changing the user name or by redirecting the path. I'll look into this more.
But I agree, it would be good if OpenLP were to use relative paths rather than absolute path to the file.
It's good to know that you've been working on this. Thanks.
Here's the error log when I tried to save a song with linked audio on another computer, without making any changes to the song, with the linked audio tab highlighted:
Traceback (most recent call last):
File "D:\OpenLP_Code\2.0\build\pyi.win32\OpenLP\out00-PYZ.pyz\openlp.plugins.songs.forms.editsongform", line 847, in accept
File "D:\OpenLP_Code\2.0\build\pyi.win32\OpenLP\out00-PYZ.pyz\openlp.plugins.songs.forms.editsongform", line 925, in saveSong
File "D:\OpenLP_Code\2.0\build\pyi.win32\OpenLP\out00-PYZ.pyz\shutil", line 82, in copyfile
IOError: [Errno 2] No such file or directory: u'C:\\Users\\John Duffy\\AppData\\Roaming\\openlp\\data\\songs\\audio\\473\\04 Great Is The Darkness.mp3'
For this reason I'm using the PortableApps version and make sure it is installed to our systems to the exact same path.
Regards,
David.
We are actively trying to make things like this less likely, and the version that is currently in development is gaining a comprehensive suite of unit tests which ensures that we don't have issues like this in future.
Having said all of this, try this exact same thing on some of the commercial products and I'll guarantee you that it won't work at all.
OpenLP is a great software and a blessing for small churches with very tight budgets. God bless everyone involved in this project, and may the lord guide you in making it an en even better application.
http://openlp.org/de/blog/2014/02/02/openlp-204-correct-caleb-released
https://bugs.launchpad.net/openlp/+bug/1095742
Perhaps that could be updated to a bug rather than wishlist
http://builds.openlp.org/OpenLPPortable_2.0.4.2192.paf.exe
The functions and errors should be the same in both versions. Am I right, raoul?
Thanks for posting the test version.
When transferring a database, the audio only works if the path names are the same. This is because path names are hard-coded in songs.sqlite rather than relative paths.
What is now working is when a database is transferred by copying all songs into a new service file, saving, and then opening this service file on the other machine. Audio is now copied correctly to the audio folder.
Hope this helps, and thanks again for your hard work.
Regards,
David.
I have recently transferred data from XP to Win 8.1, and encountered the same problem. I have tried:
None of these options consistently result in the music being added to the words, and allowing me to play the music when the words come up.
This is a real shame as when it works it is so helpful.
Are there any other ideas?