Started a very interesting project a few days ago - it's a program in java (unfortunately using swing) and the jMusic library (for manipulating MIDI files).
The basic jist of the thing is that it takes number sequences found in mathematics, (i.e. sequences coming from the 3x+1 problem or catalan numbers, what have you) and translating them into some type of scaled tones which is then written out to a MIDI file.
It actually works, although I've only got it working with a very few number sequences. I'll post the code sooner or later on my site under the GPL, but I want a chance to improve it some more.
It's kind of given me at least a few shreds of respect that I didn't previously have for java. I used to think the language really, really sucked. Now I think it's merely clunky. I guess that's an improvement.
The only problem with this program is that similar to gtkeyboard, it's a program that you can't just sit down and use with no instruction whatsoever. It's not like notepad or something, you actually have to read the help dialogs if you're going to have a chance of understanding why it does the things that it does. Which means more documentation that I need to write. Oh well. :)