This project is read-only.

How are Bible Slides Generated?

Feb 14, 2012 at 1:16 PM

Just wondering, how are the Bible slides generated?  Are they independent of the xml file once the file is made or are they linked to the xml?  If they are linked then how could one package a set of slides of a specific Bible translation without including that xml file in the packaging?  (I think I asked this question before but I don't remember the answer.)  Just trying to open discussion for a packaging solution.

Feb 14, 2012 at 3:55 PM

As it stands now, in basic terms, each time a verse is selected, the XML translation file is searched for the passage, and then it's displayed.  The solution to the packaging that I am thinking of using involves the package including a subset of the translation file.  Basically, creating a translation file that only has the selected verse, and adding that to the package.  There are some challenges I'm having to making that code work properly.  The packaging code I have does create the subset of the translation file, but is not adding it correctly to the package, ending up with a corrupted package file.  I'm still troubleshooting that.  And there are other technical issues that are unresolved regarding that code.

Feb 16, 2012 at 3:13 PM

Would is not be much less complicated to treat the Scripture slides like text slides?  Let the Bible clip editor simply copy the text of the verses and other information (Bible Version & copyright) into the fields of a special text clip.  The Text clips are already portable and can be edited for changes of appearance.  One disadvantage that I can see to this method is that the second computer user would not be able to add new verses to slides unless they had the respective xml files installed.  To add verses on-the-fly would require creating new text clips each time, which would slow down the process in live worship and teaching.  What do you think?  What are the benefits of your method?

Feb 21, 2012 at 4:45 PM


Check out revision 86739; it has my latest efforts regarding packaging, which now is basically working.  If you click on Browse on the Source Code page, you can find the updated dll file by looking for it in the following folder:

Screen Monkey Plugin Installers -> ScreenMonkey.Plugin.Clips.Bible->setupfiles->File

Copy that dll to your Clips folder inside Screen Monkey in Program Files and then you can try it.

There are a *lot* of bugs in the packaging, but the very limited testing I have done works.  Make sure when you open a packaged file, clip settings and display profiles are checked in what to open from the package (they are NOT checked by default), or Screen Monkey will hang every time it loads until the clip dll file is moved back out of the clips folder.  If you run into trouble on that, let me know and I will guide you through it.

Due to some difficulties I have had when working with that code, the following does not work yet:

1.  Repackaging a packaged show (Possibly saving a packaged show as well).  However, I think packaging a saved show works ok.

2.  (Currently untested, but suspect it won't work)  Using the Load Translation File menu option on a packaged clip to essentially make it unpackaged.

3.  Most of the controls are hidden in the Live Monitor when playing/editing a packaged clip.

4.  After packaging, closing and reopening ScreenMonkey on the same system results in Bible clips not loading properly.  This can be avoided by either removing the clips before closing ScreenMonkey or creating a new show which clears all clips out.

Feb 23, 2012 at 4:30 AM

I am still wondering if this packaging method makes the packaged Bible clip unnecessarily related to an xml file.  Could the Bible xml files be used like "micro databases" from which the Bible clip selector/editor extracts the information and creates an independent text clip that is easily packaged into the show?  I will readily admit that I may not know enough about the program writing process and simply be "barking up the wrong tree."  Before switching over to Screen Monkey I used OpenSong.  As I understand OpenSong, the programs reads the xml file and draws that information into the slide (or song sheet) generating part of the program.  The Scripture verse part of that program is very fast at finding verses and getting them on the screen.

Feb 23, 2012 at 5:05 AM

Here's how it works, as of now (this is a change from how it was when I first commented in this discussion):

1.  Bible Clip is created on system, opening an available xml file that is selected when you create the clip or open saved show.

2.  When Bible Book is selected, the xml code for that book is loaded into memory.

3.  When verse is selected, the xml that is loaded into memory is searched and found.  Then it is displayed on screen. 

4.  When save show is selected, a file location to where the bible xml file is used is saved in the show file.  So when you open the show, it knows to look at that file location.

5.  If package show is selected instead, a bible translation only containing the selected verse is created inside the show file under package settings.  If you would like to see how this is done short of walking through the code, take a smz packaged show file (saved using the new revision I just told you about in my last comment), and unzip it with 7-zip.  Then open the resulting file with notepad.  You will see that the show file is xml as well.  Under each packaged clip is a tag called Package.  Inside that is a complete translation file that only contains the selected verse.  If you compare that to a smx saved show file in notepad, you will notice that only a reference to another file is there instead.

6.  Opening the packaged show should result in a working bible clip that does not need an external translation file. Selecting different verses with that clip does not work because as far as the clip is concerned, there are no other verses in that bible translation!  In that scenario, it only knows to look inside the show file for verses!

I hope that clarifies it for you.  Please note I did not update the installer on the last revision.  The installer installs what you get in version 0.2, which does not have the updates to packaging support.  If you need me to, I will update the installer and release a version 0.3 for this update.  I had wanted to have more testing done before that happens, but if it needs to work that way for you to be able to use it, it's ok with me.

Converting the clips to Text Clips  would require access to methods I do not have access to, I believe.  I haven't researched it in depth, but I believe that approach would be more difficult to program than what I have working now.  Especially since for the most part, it is working right now - from my testing anyway.

I am a former OpenSong user myself, so I understand how effective a good scripture picker can be.  I know this is not as solid as that is yet, but I believe with the keyboard driven method, I can pull up a verse rather quickly if I know the reference.  I'll look into the possibility of making a video to demonstrate it.

Feb 25, 2012 at 3:36 AM

Thank you for such a clear and thorough reply.  This makes great sense.  You obviously understand a great deal about the code.  Great work.

I have a new laptop and already have Screen Monkey installed.  I want to test what you have in this new file for the clip.  I can install Bible Clip 0.2 easy enough but I want to try out revision 86739 so that I can test, as I promised.  I will follow your directions above and see what I can do.  I would assume that I first install 0.2 and then bring in the new dll.  Is that right?