December 06, 2007

Prototype for first increment released.

Okay, so it's been a while since the last post. That's mainly because I've been working on the project! Term finishes in a few days, the progress report has been handed in, and the first increment is on its way to completion.

The progress report cannot be posted online until well after the deadline, so if you wanted to read that, you'll have to wait. It's not Christmas just yet ;)

But the prototype is here and waiting for you. Please be aware that at this stage, the chords & lyrics are not formatted as required. I have spent a while trying to display them like this. If anyone out there can recommend a way of displaying HTML that gets 'correctly' formatted with CSS (at the moment, the JEditorPane does not support the CSS code that I need it to), please do! I have looked around, but nothing could be found in a reasonable amount of time that would work and be platform-independant. This will be revisited, but as with much of this project, the priorities must be kept in order, so rather than getting stuck in details, I shall be focussing on the larger issue of the database functionality. Talking of which, the add/remove/edit song buttons on the prototype's menu do not yet work. Please remember it is only a prototype!

So here it is, Merry Christmas!: Prototype (ZIP, ~100kb)
To run this, unzip all contents, and run the XMLGUI.jar file. Do this either by double-clicking it in windows explorer, or at a command line (in the same directory as the file), type 'java -jar XMLGUI.jar' and press enter.
(It should work in Linux by the way, it was tested briefly on a DCS machine).

To get the program to do something useful, click File > Load Songs on the menu, and navigate to the folder that you placed the contents of the zip file into. Choose the songs-nocopyright.xml file, and voilá, a small selection of songs is displayed. Click them, search them etc. Please note that the search function can match some songs incorrectly due to the search algorithm implementation for this prototype.

If you don't want to download it to have a look, heres a peek: Prototype screenshot

November 17, 2007

Some designing of PSALM Increment One

Slightly overdue (I mean overdue in going onto this blog), here's some of the more interesting design work done for the first increment of PSALM.

PSALM - First module diagram

First, the  component/module relationships. Please be aware that this is not in any kind of standard notation, but is actually just a tidied representation of what I have written be hand in my grand A4 pad of joy. The key should at the top-right should explain the crazy colour scheme. The arrows give a basic idea of relationships. So, for example, the GUI (which is circular in the diagram for no real reason other than most operations run through it) calls the DB (database) Bridge component. The little arrows under some of the components just highlight some of the more important functions or sub-components.

I have named these 'components' because they won't necessarily constitute modules. If anything, each block is more like a 'part' of the program. So the external XML database is included on the diagram, as is the Setlist object class. I will also point out at this stage that this design is just a starting point that is likely to need refinement. This first increment is about getting something built that will be functional to stimulate further thought and then work. 

Next, we have a plan for the layout of the XML database:

<song title="..." writer="..." date="..." basekey="..." capokey="..." ...>
<verse no="..."> | <chorus> | <prechorus> | <bridge> | <tag>
Lyrics go here, [C] chords go in sqaure brackets [Em]
[D/F#] Sometimes chords mig[G]ht be in awkward places. [C] [G]
</verse> | </chorus> | </prechorus> | </bridge> | </tag>
...insert more songs here!

Hopefully that gives you an idea. Additional imformation can be stored in the song tag, such as theme, quick reference or songbook information. This is not so important for this increment of the program.

For a better example, take a look at this code snippet: songs-nocopyright.xml. You may find it simpler to view this file in a text editor by saving it first rather loading it directly in your browser.

Again, this is just an example, which won't necessarily be used exactly like this in the final implementation. 

November 05, 2007

What should PSALM do?

I had an informal discussion with a friend today, Rich Kelly, about how software could help in leading worship. Rich leads worship in my local church, and leads one of our church bands. Our church is currently looking at re-organising the way our music is kept. At the moment, we use large files of paper sheets that aredifficult to keep tidy and up-to-date.

After introducing him to the idea that software could help, I asked what he would require in a program to help lead worshippers and their band. Here is some of what he said (paraphrased), together with comments I have added that lead directly from what Rich said:

  • The program - or the user's interaction with the program - must not distract the rest of the church congregation.
  • It must be easy to use, as songbooks will often suffice. Using a mouse would be very difficult while playing guitar! Even without a guitar, how would a mouse be used if there is no surface to use a mouse on?
  • Practically, could a laptop running the program be mounted on a stand?
  • There could be program versions for other members of the band - e.g. one with sheet music displayed for keyboard players, ones without music (lyrics only) for singers.
  • Voice recognition for song selection would be very useful. So while playing a set, the user could say the name of a song into a small microphone to select it, rather than having to click buttons.

All this shall be taken into account when designing PSALM.

In other news, here is another idea of what PSALM's GUI could look like:

Second GUI mock-up

Basically, the two halves have been swapped around because the left side would be used first, to select the song then displayed on the right. A little more thought has gone into the program's design, which hopefully shows in the functionality implied by this screenshot.

November 03, 2007

The first tentative steps

Here is a rough idea of what the PSALM program could look like. Please bear in mind that this image is simply a mock-up, nothing is in concrete. Most importantly though, I have not thought much about basic GUI layout prinicples, let alone HCI issues. This screenshot serves only to indicate the kinds of functions that will be required. 

First PSALM mock-up

The first steps towards increment one have begun. This first increment is aimed at implementing an appropriate database and basic GUI for displaying/finding songs, forming the 'bread and butter' foundations of the program.

Requirements for the first increment are laid out here: reqs.pdf.

October 30, 2007

Updated specification

The project specification has just been updated, adding information on what languages shall be used for the program, as well as some smaller items that were discussed with Steve Russ last week.

From now on, a live copy of the specification will be available here, and the original that was officially submitted on 11/10/07 will be kept here. Both versions are linked to under 'Project Resources' at the top of the sidebar on the left of this blog. 

By the way, on doing some more trawling around the web today, I found this:
It is a piece of software for displaying lyrics (and optionally chords) of songs, just like songpro (the most common tool in churches for this), but is operated by a foot pedal on stage by the lead worshipper! I am very impressed, and especially by the fact that the display is all done with javascript/HTML. I am sure I shall return to looking at this program as it covers some of what I hope my PSALM program will do. The intended features of PSALM may need to change if WorshipSession could be used for some things, as there is no point in just re-doing somebody else's work. 

October 23, 2007

The most important bit of work done so far

PSALM icon

This is, provisionally, the icon for the software tool I am going to create.

The program is (also provisionally) known as PSALM (Personal Software Aid for Leading Music). The book of Psalms in the Bible is full of songs written by Israel's King David - take a look here: Bible Gateway.

The background image to this blog contains a quote from Psalm 150, which in full reads:

Praise the LORD. 
    Praise God in his sanctuary;
    praise him in his mighty heavens.

Praise him for his acts of power;
    praise him for his surpassing greatness.

Praise him with the sounding of the trumpet,
    praise him with the harp and lyre,

praise him with tambourine and dancing,
    praise him with the strings and flute,

praise him with the clash of cymbals,
    praise him with resounding cymbals.

Let everything that has breath praise the LORD.
    Praise the LORD.

The icon forms a P standing for PSALM, and depicts something that looks like a harp or lyre , King David's instrument of choice. My program is intended for lead worshippers that play guitar - the modern King Davids. 

Oh and slightly off-topic, I have set up a svn server, thanks go to Alan Hazelden.  

(PS. the title to this post is tongue-in-cheek!)

First books ordered

The first set of books to read are now well on the way. All from Amazon marketplace as that's the cheapest/easiest/cheerfullest place to get them from :-)

1Beyond the OHP: Using Technology in Church Jackie Sheppard;

2Wired for Ministry: How the Internet, Visual Media, and Other New Technologies Can Serve Your Church John P Jewell;

3Help, There's a Computer in My Church!: Practical Advice for Using Computers in Ministry David Trammel;

4High-tech Worship?: Using Presentational Technologies Wisely Quentin J. Schultze. 

Done some reading this last week or so over the internet - for example, David Lochhead's essays,  various articles on and some surveys on
Also found a chapter on the history of technology in the worship/music context in All About Music Technology in Worship, by Steve Young. Helpfully, Amazon has put the chapter up on the web in it's entirety! Its very brief but gives some nice historical context for music technology in the Church (including how computers have become used for music). 

October 18, 2007

Project Specification

It's the first major deadline for my project, and so the project specification is complete. See the PDF file below.

spec.pdf (171kb)

Specification abstract:

This document specifies the details, such as the title, problems, methods and objectives, of James Williams’ project for module CS310. Having been assessed for feasibility, the components of the project are split between core and extended parts. Also included is a proposed timetable and a discussion of the required resources and any issues such as ethics involved in the project. This specification is subject to constant review.


• Investigation Aims:
   1. Investigate the extent of the use of IT in the Church and the attitudes towards it.
   2. Investigate how IT could have potential further use in the Church.

• Aims of the Software aid for leading music:
   1. Develop a new song organisation system to replace the songbook system.
   2. Enable easy key transposition
   3. Make a tool to recognise what key spontaneous singing may be in.
   4. Include a function to recommend songs for a setlist.

• Diagram of Key components & their relationships:

(Click to enlarge) 

Component relationships (click to enlarge)

• Provisional timetable (which "can only serve as a rough guide" at this stage):

Dates Task
Term 1, Week 2
Submit Specification
Week 3
Begin reviewing literature; Create project web site
Before week 6 Increment 1: Requirements analysis and design
Monday, week 7 Other coursework deadline
Before week 9 Begin key recognition component; begin building and testing of first increment
Monday, week 9 Submit progress report
Before end of term 1 Complete first increment
Christmas holidays Increment 2: Requirements and design; begin building and testing
First weeks of term 2 Complete increments 2 and 3
Before week 7 Complete increment 4
Week 9 or 10 Deliver presentation
End of Term 2 Other coursework deadline
Easter holidays Complete project report
Term 3, Thursday, week 2 Submit final report

"Hello World!

Welcome to the blog for my 3rd (and final) year project. My name is James Williams, and my project's name is 'IT in the contemporary Church'. 

This blog will track the progress of the project, plus notes and downloads related to it. 

To find out more about the project module, visit the CS310 webpage. My supervisor is Steve Russ.

The (current) abstract for the project is:

An investigation into the current and potential uses of IT in a church.
A suite of programs could then be created for solving problems found in the investigation, for example an aid for leading corporate singing, with key recognition and set-list generation/recommendation. 

Whatever your reason for being here, you are quite welcome. Unless maybe you're looking to hack this blog, or do something else nasty.  But otherwise, 'hello!' :-)

If you want to contact me, please do by clicking here.  Thank you and have a good day!

September 2021

Mo Tu We Th Fr Sa Su
Aug |  Today  |
      1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30         

Search this blog

Blog archive


Most recent comments

  • Congrats for ur final report,, I dinn have ne problem veiwing the report, its seems to be gud,, ..! … by Veda Informatics on this entry
  • By the way, if you have any problems with viewing the report, or in using PSALM, please still let me… by on this entry
  • It appears that when I tested PSALM, the computer that I tested it on already had the Bitstream Vera… by on this entry
  • Ah… thank you. The font hasn't been picked up. I'll have a look at what needs to be done. by on this entry
  • Chords aren't displayed in the right place for me. The spacing seems to drift slowly left, so that c… by Steve Rumsby on this entry

James Williams

RSS2.0 Atom
Not signed in
Sign in

Powered by BlogBuilder