These are some of the software projects I'm currently working on.

That Word

That Word is a word-finding game for the iPhone and iPod touch. This application is my first foray into iOS development. In addition to the client application, there's also an online scoreboard implemented in Python with Django.

That Note

That Note is an in-progress iOS app I'm developing mostly for my own personal use. It's a note reading quiz application to improve note recognition and sight reading. There are already a few apps like this available, but none that completely fulfill my needs.

Zine

Zine is a small content management system I wrote for my own use, written in Python and using Django. My reason for creating Zine was primarily to learn Django. This site is running Zine.

The logo is an intentional spoof of the WordPress logo.

Lemon

Lemon is an optical music recognition system; it does to sheet music what OCR does to text. This work was originally part of my master's thesis at the University of Calgary in 1994-95. At that time, my own recognition experiments showed that Lemon was more accurate than two commercial offering at the time—MIDISCAN 2.0 and NoteScan 1.04—with a recognition rate of 95% versus 92% and 82%. (I have no idea how the commercial offerings perform now.)

In 2009 I started to teach myself to play the piano. This renewed my interest in Lemon, because I wanted to use it to play unfamaliar scores so I could hear a piece before attempting to play it. Finally, in 2010, I resurrected the project, and began updating the 34,000 lines of C++ code. There's an enormous amount of work to be done, and I don't have any timeline for completion. My progress is very slow. Ultimately I'd like to run this on an iPad or iPod touch—when they get a capable camera.

I've been using NOTION 3 for my music notation needs.


✻ 

I like Django, but I'm not a huge fan of its templating library. I don't agree with their claim that “making humans edit XML is sadistic!”. On the contrary, making humans edit unstructured text when the goal is to render well-formed XML is sadistic. I wish Django had adopted Genshi. instead.

If I were to choose a framework again, I'd take a closer look at Pylons and Turbo Gears. Philosophically, I agree with the approach of Turbo Gears, which integrates existing high-quality libraries (namely SQLAlchemy for ORM, Genshi for templating, and CherryPy for the HTTP stack) rather than reinventing everything.

† 

I was very disappointed that when the iPod touch finally got a camera, it sucked. The less-than one megapixel resolution is insufficient to do symbol recognition on.

‡ 

DARMS is now dead. Even back in 1995, it was almost dead. The only software I could then was The NoteProcessor—which was a DOS program! Now, I'm looking to support MusicXML.