23 December 2009

Wait! I hear you say. Isn't Church Music Organiser a new program? How can there be a history? Well, therein lies a tale...

While the Church Music Organiser program was only made generally available from December 2009, it's the product of over ten years of development. Around 1999 I became the Music Director at Campsie Community Church in Sydney. As part of that role I needed a way to select songs for each service, but I found I couldn't remember titles of songs. The best that I could do was remember a phrase or a line out of the song.

Being a computer programmer, I naturally thought a computer program would be the solution for this problem, so I put together a simple song database (called, somewhat inspirationally, "Song Database") that allowed me to do a word search on lyrics.

As time went on I continued to add features to the program, adding a simple order of service organiser, and contact information.

Around 2001 I embarked on a re-write of the user-interface of the program. One of the failings of the first interface was that the order of service was an afterthought, and it was impossible to search for songs while the order of service was displayed using all the nifty search features I'd built. So I built a new interface that allowed the order of service to be populated directly from the song listing. I also added overhead projection facilities, and the ability to use multiple databases. This was originally version 2, and I changed the name to "Church Music Organiser".

In 2005 I changed churches, moving to Blaxland Gospel Chapel in the Blue Mountains west of Sydney. Once again I became involved in the music team, assisting the music leader in organising songs for services. My program was instantly useful in this regard.

All the previous versions of the program were written in Microsoft Visual Basic 6, using the Microsoft Access database as the data storage mechanism. In 2009, with the realisation that Visual Basic 6 was an unsupported platform, I did a complete rewrite of the program into Visual Basic.NET, and changed the database to SQLite. I also did a number of user interface tweaks to make the program more intuitive, and added features like CCLI integration, file storage, chord sheets, and enhanced meetings with timings.

This would have been version 3 of the program, but as I was led in the direction of publicly distributing it I thought it best to renumber the version back to 1.