I’ve been involved in church music for a long time and, in the churches I’ve been, there has been a gradual shift from printed books to electronic files that never make it to the printed page. In my present church, each person reads the chords and lyrics from a device of their choice, so no more stands collapsing under the weight of oversized books or endless piles of paper. However, it would also be fair to note that we often turn out to be using different sources for the same song and, even if we have managed to agree on the sources, there are plenty of mistakes to be found when you are relying on transcriptions that may have come from a seasoned professional or someone who hasn’t really even mastered the art of tuning their guitar!
Since I’m getting my head back into webdev space for the new job, I’ve also been doing some personal side projects that give me a chance to limber up and flex my development muscles. The main one of those so far has been to work on a way of sharing my collection of ChordPro files, amassed over the last decade or so, in a way that is less clunky than exporting from OnSong to DropBox (after setting the key and song flow), then sharing PDF and ChordPro files via the group WhatsApp.
It is a long way off public release and it is likely to always stay as a system that needs a developer’s hand to guide it but I think I’ve arrived at something which is reasonably functional. Indeed, we’ve already used it for all services this year and I’ve applied various updates to improve weaknesses after each one. In the present iteration, songs can be picked from a list of about 20, either individually or strung together into a set. Each song can also (fairly reliably) be transposed into different keys. In week 1 I was using files I’d manually crafted into HTML, last week the .cho files were processed on the fly and, for this week, the songs we need will actually be rendered from JSON files.
That last step makes it simpler to step through things like the chords (almost done – I’ve just got to do a few tweaks as minor keys are not reliable). Next on my roadmap is to make it easier to customise the order different blocks appear in and to add reminders such as who is going to start the song or how to blend into the next piece. That will be much easier drawn from a JSON source, which already has a clear structure. I will need to automate the .cho to .json transition but, since that doesn’t need to be done live, I can turn back to Python. I’m enjoying getting back to PHP but there are certain tasks were Python makes it easier for me to express what I want the program to do.
I’ve also got some ideas for a little further ahead – for example, potentially team members could access the full catalogue at any time but I might also add a view that allows the congregation to see the lyrics for the current service. I’m not aware of anyone in the present congregation who has problems reading from the screens but that has been an issue for some in previous places and some of those people would have loved to be able to use a personal device, set up around their needs, to keep up with the songs.
Plenty to be doing but it seems to be beneficial for my fellow band members and I can feel those coding muscles coming back to strength.