SvA - 2 days ago

Hi
here are instructions how to do this.

“Old” and “new” below refers to the computer you want to copy from and the computer you want to copy to respectively.
These instructions are generic and work on all supported platform: Windows. macOS, Linux, Raspberry Pi

Overview

Basically all you need is stored in files in OpenSong’s document folder. You need to copy that folder from the old computer to the new.

Step by step

  • first install the same version of OpenSong in the new computer. You could just copy over the program’s installation folder also, but installing checks prerequisites, sets up shortcuts in the start menu and on the desktop and makes a later update easier.
  • Check the location of OpenSong’s document folder on both machines. Copy the contents of that folder from old computer to the new. You will find the location of the folder in General Settings, tab File locations. OpenSong should not be running on either computer while you copy the files.
  • If you have Scripture versions other than AV, that comes with OpenSong, they may be installed alongside AV on the old computer and not within OpenSong’s document folder. So if you are missing Scripture versions on the new computer, check the folder <OpenSongInstallationPath>/OpenSong Scripture and copy the files associated with the scripture versions you find there to the corresponding folder on the new computer, or the folder Scripture in OpenSong’s document folder on the new computer. “<opensonginstallationpath>” just stands in for the actual path where your OpenSong is Installed to on your machine. That will typically be C:\Program Files (x86)\OpenSong on a Windows system with 64-bit support, and /opt/OpenSong on a Debian based Linux. Scripture files typically have no file name extension, or one of .xml or .xmm, and are in a size range of 1 to 7 MB. Don't bother about the folder named ‘indexes’ you may find there. Beter create a new index on the new system. OpenSong will prompt you to do so, the first time you access that version.</opensonginstallationpath>
  • Check your settings on the new computer. Some settings are host computer specific (actually specific to the user profile). Those settings should not be copied. Therefore, simply configure OpenSong as needed on the new machine.

Any references from song to song (i.e. Linked Songs) and from set to song will work on the new computer.
Any references to files outside OpenSong's Document folder are likely broken now. Depending on your settings, and the particulars of your system environment on both computers, even those references may be broken. This affects in particular:

  • Backgrounds in styles in OpenSong settings, songs, and sets
  • Section specific backgrounds in songs
  • images in image slides
  • file references in external slides

Check and fix these.

That's all. You copied all songs, all sets, all backgrounds stored in OpenSong's background folder, scripture versions, and most of the settings, adjusted the settings, corrected broken file references, and are ready to go.

Remarks

Versions of OpenSong should be kept in sync, because otherwise you might run into trouble with songs, sets and configuration. OpenSong is fully forward compatible, i.e. a newer version can cope with data from an older version, but the other way is not given.
Obviously, newer features are not available in older versions. But because the older version id not aware of the new feature, it may discard setting regarding it. The same is true in regard to other applications, that use and extend on the OpenSong file format. One such case I am aware of is OpenSongApp, an Android app primarily for musicians.

In case General Settings, tab File locations does not display a path, but instead says "Portable installation" and the Browse button is disabled, your document folder is named "OpenSong Data" and is located where your portable installation is stored, i.e. where the application is, that you started.

If both installations will remain in use, you will likely want to keep those in sync. Different strategies may be suitable depending on your case.

  • First, try to set up your systems in way that makes links to backgrounds and other external items look identical. You may use hard or soft links in your file system to help with this. If you keep all your backgrounds in OpenSong’s Backgrounds folder, and use the setting Do not embed images from backgrounds, use a link, backgrounds won’t break. Otherwise you should probably make sure backgrounds will get embedded. Embedded images will bloat the size of song and set files, and will make it harder to synchronize changes between systems.
  • I recommend not synchronizing the Settings folder after the initial transfer.
  • For Backgrounds, Scripture and Sets you are probably ok with just always copying the newer file to the other side
  • For Songs I recommend a versioning system (SCM) like SVN or Git.
    Or just use a file syncing program that keeps state, i.e. knows if only one side changed or both sides changed since the files were in sync the last time. This way it will know, if the song can just be copied over the older one, or you might be loosing some important correction by doing so. Since the songs are text files (actually xml files, but kept in a way that is easily editable in a text editor, as long as you know some basics about xml and thus are able to keep the xml structure in tact, e.g. don't insert modify or delete any xml tags) you can use any diff and merge program like WinMerge, Meld, or kdiff3 to inspect and merge changes. For file and folder synchronization I used FreeFileSync and Unison with success in the past.
    Cloud or network storage may be an alternative. I did not want to be dependent on the network drive being available during the service or other event. When I looked into cloud storage a long time ago, there was no satisfactory option that made sure I don't loose any changes for simultaneous changes or offline changes. So I abandoned that approach, and did not look into it anymore, other than for a central storage to sync each computer to.