I'm a missionary in Japan. The name of my mission agency is WEC International. That's supposedly Worldwide Evangelisation for Christ, but I think I have a better idea about what it stands for...
2007-08-24
Songbee 1.0
I've been feeling like a compete sloth this week and not getting very much done, but today I managed to do a great deal of work, and am happy to announce the 1.0 release of Songbee. There's an awful lot changed since the 0.1 alpha, including:
- Search bar during worship
- Song import and export
- "N" key to go to the next logical part of a song
- Projector display preferences to customize how the worship screen looks
- Full-screen mode
The only down side is that as yet the manual hasn't caught up with all this new stuff, nor has the Japanese translation of the user interface.
I'm having some problems with the Windows build, due to this bug in xulrunner. I don't know a workaround for it at the moment, but if you have one, please share it with me. OSX and Unix versions work fine.
As usual, bugs, feature requests, etc., let me know.
Update: I think I've fixed the Windows issues. If someone could give it a download and have a try, let me know. Thanks!
2007-06-26
Death of a thousand bugs
So today I've been doing work on Songbee, amongst other things; one of the areas I've been looking at is whether or not the Japanese localization of it works properly. It certainly doesn't on Mac OS X. Even if you select Japanese as your preferred language in Mac's System Preferences, the Songbee interface comes up in English. This is counter-intuitive, and means it doesn't work like any other OS X application.
Now it turns out that this is a problem with the Mozilla platform. It doesn't ask the operating system what language the user wants. (Although this isn't hard to do; here's some code which does it.)
It also turns out that this problem has been known about since 2001. I don't know, maybe it's just me, but I think if you have important bugs (of course it's important, because it's important to me dammit! ;) sitting around open for six freakin' years and nobody's touching them, something's gone wrong with your bug tracking system. Part of the problem, I guess, is that Mozilla gets a lot of bug reports, and there's enough work to do with triage and fighting fires trying to keep up rather than go look at old stuff. So this is no criticism of the Mozilla project - perhaps the only way old bugs will be looked over will be if someone volunteers for the boring and thankless job of trawling through a very large and very old bug list and working out which ones are still important. But volunteers for boring and thankless jobs are, for some reason, really hard to find...
2007-02-03
Songbee on Windows
![]() |
Windows 0.1 Alpha release. (Requires XP or above) |
Go get it. Bugs to the usual place, except for things we already know about.
2007-01-21
Songbee alpha Release!
Yep, we're pretty much ready, at least for an alpha. There are a few things that need to be fixed, but now I think is the time for people to kick the tires of it.
I'll post a Windows version in the next few days, but the Songbee website has the Unix and OS X versions. Please post bugs at the development site.
2006-12-22
Songbee svn/trac
OK, folks, I think I got the bits in the right order. After stealing the very clever trac/svn integration from work, and spending half an hour or so fighting with svk, I think I have a Songbee repository up and running here. Additionally there should be a Trac project management thingy.
2006-12-11
Why you should NOT use Songbee
Some more updates on Songbee. First, I will be putting up a web site for it, although it's not a priority. The site will basically be a rearrangement of all the information you can find under the Songbee tag, so look there to begin with.
Second I'm not averse to putting up a public svn repository but I'm finding it tricky for administrative reasons; I have an svn repository that I'm working from on my laptop (actually I use SVK) and I don't know the magic incantations required to move it onto my server, with history intact, and then pull it back out and keep on working on it. svk is lovely, but I wish it were simpler...
But if people are interested in Songbee, I want to encourage them not to use it. Really, you should only be using Songbee if you've tried everything else and it doesn't work. Here are the alternatives you should try before looking at Songbee:
- Easislides. It's Windows only, it's fully bilingual, (although it doesn't support Japanese ruby, which is why Songbee exists, and since it's not open source I couldn't make it so) it makes songbooks, it's got Bible text inegration, and it's very pretty. If you're using Windows and you don't care about free software, and it does what you want, use this.
- openlp.org. It has a silly name, it's Windows only, it's open source, it does Bible text integration and Powerpoint integration, and it's very pretty, although it doesn't support Japanese ruby, and because I can't develop on Windows, I couldn't make it do so. If Easislides doesn't do what you want, use this.
- Opensong. This is Windows and Mac. It's open source. It's really good, although it doesn't support Japanese ruby, which is why Songbee exists, and it seemed like an awful lot of work to make it do so and besides I don't understand Realbasic. If neither Easislides nor openlp.org does what you want, use this.
- Lyricue. This is Linux only(!) and does all the usual stuff. As usual it doesn't support Japanese ruby, and I couldn't be bothered to make it do so because my target audience wouldn't be using Linux anyway. If you're a complete Linux-head, use this.
I hope you've now got the idea that you should only be using Songbee if you care about worship projection software that supports Japanese ruby, and if you did, I'd probably know you already.
Songbee doesn't do Bible text integration, although I can see that coming as an extension in the future. (XPCOM interface to C++ SWORD library; I know all the right words, but I don't know how to do it!) It doesn't and probably won't do Powerpoint stuff, although I guess someone who understands Windows might write an extension to do that. It isn't particularly pretty at the moment, although that's coming, and it won't do audio/video integration.
On the positive side it is open source (when I work out how to release the source!) and highly cross-platform; being based on Mozilla it'll run on OS/2 or BeOS if you need it to. But you know, so what? You're only likely to be using one operating system at a time, and it'll be covered by one of the ones above. So really, its only redeeming feature is that it fulfills a need in the Japanese church. If you don't have that need, perhaps try one of the others?
2006-11-30
XUL, Storage, Mozilla and SQLite
So after writing this horrible SQL-XUL monstrosity, I wrote up my findings!
2006-10-13
What Songbee Is
jdavidb in comments asks for a basic description of Songbee. I was going to reply in comments, but then I realised that for the purposes of putting documentation together it's better to have things tagged up in blog posts. So here we go.
In many churches, hymnbooks are on the out and computer projection of worship song lyrics are coming in. Some churches use Microsoft's Powerpoint to do this, but there are problems with Powerpoint. The main one is that a Powerpoint presentation is linear - you go from one slide to the next until you get to the end of the presentation.
But songs are not linear, and worship less so; you have a verse, then a chorus, then another verse, and then the worship leader might choose to go back to verse 1, or sing the chorus, or sing the bridge. If you're using Powerpoint you have to flick around between slides when something unexpected like that happens.
So there are dedicated projection tools, which allow you to say "go to next chorus", "skip to next song", "go back to previous song in playlist". Easislides is one such of these. If you've got the money, Words of Worship is "the best Christian song projection software on the market today", according to its author.
Why am I writing another one? First, because software should be free. Software to assist churches should particularly be free because to make such software non-free would be to deny my less well-off brothers and sisters something which would be of benefit to them, purely on account of their poverty - which is pretty much the opposite of everything that God stands for. I'm not saying that people who create commercial Christian software are being unethical, but...
No, OK, I am saying that.
But anyway, the second reason is that my particular situation involves the Japanese church, and displaying Japanese text has a particular challenge. Japanese has a number of set, including the Chinese kanji character set. Unfortunately, not everyone can read the kanji characters - I don't just mean missionaries who are still learning Japanese, because a lot of theological words are incomprehensible to most Japanese (yeah, I know) so they need to have the pronunciation spelled out for them. So they use another, syllabic, alphabet on top of the characters, like this:
| とう | きょう |
| 東 | 京 |
To do this kind of display obviously requires special support, (to say "oh, and these lyrics go on top of these other lyrics", which is not a normal thing to want) and Easislides and friends can't do it. But since Easislides is free but not open source (which is the other prong of the free software problem) I can't modify it to make it work. the way I want it to. So sadly we have to the Protestant thing and start a new one from scratch. This is what Songbee does.
For the technically minded, Songbee is an XUL application with an SQLite backend powered by mozStorage. It's cross-platform, it's being developed on OS X and Linux and will be deployed on Windows as well. I'll have an alpha out by December. The roadmap looks like this:
Milestone 1
This will actually be functional, but not ideal. I'd say about 70% of this is done, the other 30% is user interface polish.
- Display of songs, worship-time interface (done)
- Creation and editing of playlists
- Addition of new songs
Beta: Milestone 2
- Import and export of songs and song databases
- Search through song database, playlist edit time and worship-time
- Internationalisation (interface in Japanese as well as in English)
Release
- Customization of style of worship-time screen (fonts, colors, backgrounds, etc.)
- SWORD interface - ability to insert Bible passages as well as songs
There are a couple of things I just don't know how to do. Making searching work really nicely would involve something like Lucene, and I don't know how to interface that with XUL - partially because I only learnt XUL a couple of weeks ago. Similarly, SWORD is going to be an utter nightmare to integrate with XUL, because SWORD is written in C++ and the XUL stuff is written in Javascript, and they're different languages. I don't know how to do a few cosmetic things like positioning the worship-time interface on the second external monitor, but we can live without that for now. Someone will know. :)
Above all, it's looking good, and it's nice and easy to use, it does the job, and it looks good doing it. I just need someone to lock me in a room with an endless supply of beer and O'Reilly books, and it'll be out in finite time!
2006-09-29
There is no Perl, only XUL
So I got another well-timed prod about Songbee recently, and picked it up where I left off - which was a problem shipping a nicely cut-down version of Mozilla which did everything that I wanted.
Gervase suggested I take a look at XULRunner, which as its name suggests, is good for running XUL applications. But I don't have an XUL application, I have a web-based application; and XULRunner doesn't like creating pop-up windows for web-based applications due to the Mozilla security policy. Other than that, XULRunner is indeed very nice and exactly what I want.
So I thought about it, and realised that juggling around with a Perl server sending web pages to an XUL application wasn't going to work. And, you know, the Perl code would be really nasty to distribute anyway, since you'd have to use PAR and it all gets complicated. There's another solution: rewrite the whole thing to be an XUL application. Heck, there isn't that much that the Perl server does, anyway; most of the doing-things code is Javascript. Perl's only there to handle the database access, really, and with mozStorage you can do all that in Javascript.
It's going to take a while, but it's going to solve all the technical problems and it's going to be a lot neater and a lot easier to distribute. There's nothing at this stage I don't know how to do.
There have been two major hurdles so far, both of which I've cleared. The first was just learning to think in XUL and Javascript, and get my head around what a completely JS-driven application would look like. The second was getting the database access sorted out. At this point I have the makings of a Class::DBI-style interface to my database, but in Javascript. Class::DBI in Javascript, man, think of it!
I honestly didn't know you could do that.
2006-08-23
Songbee progress
I've spent much of today hacking on Songbee, the song projection software that I'm supposed to have finished around three years ago now. It's in a funny state. It sort of works, although there are a few bits and pieces that need clearing up. But there has been a massive black cloud hanging over it for almost all of those three years.
The black cloud is, of course, Windows. Anything we're going to be deploying on missionary and church PCs needs to be Windows-based, and Windows is not an easy operating system to deal with. For a long time, I simply didn't have a copy. Now I do have access to a Windows machine, and the Windows Perl scene has moved on a lot in those years as well.
But I've still had a few problems getting some of the Perl modules compiled and working, specifically the XML and XSLT processing modules. So, instead of fighting them any longer, I've spent the day getting rid of them. Mozilla has its own XSLT engine with a Javascript interface, so I've converted the code to use that instead. It's simplified the code, too, by doing less in the Perl layer and more in the Javascript. Next I'm going to be turning the XML parsing into regular expressions, which is evil in a general case but fine in this case because I have control over the XML generation anyway.
After that, we should be able to use PAR to produce a working Windows executable. It'll do the basics of song projection, but having a path to creating a working executable means it'll be easier to roll out new releases very quickly and get people using them and testing them. That will be a major hurdle to get over.
| « | 2008-05 | |||||
|---|---|---|---|---|---|---|
| S | M | T | W | T | F | S |
| 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 | 31 |
lathos: Just written a device driver for my new piano. I impress myself sometimes.






