Worship Him Conversion

Been starting to look at doing some stuff for a church, they use Worship Him, which is Windows only, anyone know how to convert the data to OpenLP which would work better on the sound guys computer (Mac) and mine......  

Maybe someone has done this before?


  • I downloaded their trial version and had a quick look at the files in the installer (using Debian). It's a .NET app, looks to be written in Visual Basic .NET and uses an access database. I used the "mdbtools" suite to look at the database structure. It's pretty simple.
    CREATE TABLE [Categories]
    [Category1] Text (200)

    CREATE TABLE [Songs]
    [Title] Text (200),
    [Author] Text (200),
    [Publisher] Text (200),
    [Copyright] Text (200),
    [SongKey] Text (100),
    [Lyrics] Memo/Hyperlink (255),
    [Category] Text (200),
    [PlayOrder] Memo/Hyperlink (255),
    [ProjectorDisplayTemplate] Memo/Hyperlink (255),
    [Transition] Memo/Hyperlink (255),
    [Notes] Memo/Hyperlink (255),
    [CCLINumber] Text (100),
    [HymnalNumber] Text (100),
    [User1] Memo/Hyperlink (255),
    [User2] Memo/Hyperlink (255),
    [PrintFormat] Memo/Hyperlink (255),
    [DisplayFormat] Memo/Hyperlink (255),
    [ShowTitleAuthorCopyrightOn] Text (510),
    [RecordID] Long Integer NOT NULL,
    [CreationDate] DateTime,
    [PRJsUseDefault] Text (200)

    CREATE TABLE [UsageTracking]
    [UseType] Text (100),
    [UseQuantity] Long Integer,
    [UseDate] DateTime,
    [RecordID] Long Integer,
    [PrimaryKey] Long Integer

    [NextRecordID] Long Integer NOT NULL

    I don't know if Fedora has the mdbtools package, but if it does, you should be able to extract the songs using mdb-extract or mdb-sql (or maybe mdb-tables). As for importing them into OpenLP, you might be able to convert the songs into OpenLyrics format for importing.
  • Fedora does have it, I need to get my hands on the church data, then do some playing with it, probably dump it out to text, then figure out how to import it.  Was hoping someone else had already done it.....    I've found if you can get input data as text, you can massage it into whatever you like, for import into something else that supports text.    I'm hoping I can do this in Python.....   

  • Python can do it easily. That's why OpenLP is written in Python :-)
  • Question about Open Format, say I have 8,000 songs, can I create one big file with all the stuff in it, or do I need to do them one at a time?   One at a time, would make the whole project kinda stink....
  • The OpenLyrics format only allows 1 song per file. OpenLP can import multiple files at the same time.
  • I kinda figured that....   Will probably go ahead anyway....
  • Okay I'm going ahead with this, originally I was planning on writing in Python, but there is some ugly stuff in there, for example some of the verse types that exist in WH don't transfer to OpenLP, and the conversion program needs to be able to deal with this.  My Python is okay, but when the going gets ugly, my preference for C comes out...  Yes I could put the ugly stuff in a library, then wrap it with Python, but that means using non-standard bits.

    So I started over in standard C, usually if you stick to POSIX extensions to ANSI C and it should compile okay on other platforms.  

  • edited May 2018
    Pulled out the big guns, hey? Can you upload your code somewhere? Maybe it will benefit someone else.

    One of the devs might even make an importer in OpenLP from your code.
  • Sure, once it's complete I will send it along, it essentially reads the WH database using mdbtools, then builds open lyrics files that can be imported.  
  • Okay, I have this kinda sorta working, I may actually build a direct OpenLP importer into it, the SQLite files don't look that complex.....  There can be a long process between working code and production code, and I have limited time to play with it, so I am hoping for end of summer.  It will be the same licence as OpenLP....
  • Writing an importer in OpenLP might be a little less work ;-)
  • I had something working, then realised that it depended on mdbtools existing for a given platform, and it's not available pre-built for Windows....  So the project is cancelled, for now...
  • @wogster: Feel free to share your current code anyway. Maybe someone else will pick it up :)
Sign In or Register to comment.