I've been enjoying a fairly new programming language called ChucK for a while now. ChucK uses a thread-like thing called shreds (non-preemptive, locking) and makes the clock behave in a deterministic way, aiming at being useful for making sound. I think it does a very good job at that!
The Command Line Sequencer is an attempt at making a sequencer that you control in real time with typing on a computer keyboard rather than a point-and-click interface or some MIDI controller. If you doubt the usage of something like this, find an old Unix system administrator and ask her or him for a demonstration of the "vi" text editor. You'll be suprised at the speed at which you can control something via a keyboard. Also, the way you type is somewhat akin to the way you learn playing a piano keyboard (logical, really), meaning that practice makes perfect. I've managed to pull some tricks from this, and I'm thinking of adding some new improvements.
Mouse Harmony is a little application that takes the input from several mice, each controlling its own sound generator. Not very useful in itself, but I am pretty entusiastic about the prospect of hooking up a load of trackballs to a computer to make music.
Keyboard Trainer is a little game that plays notes and then checks if you play it right on a MIDI keyboard. The linked thread quickly diverges into a lot of advanced stuff - I only posted stuff at the start.
Sample Composer is a larger project that uses Java to display a GUI where you can freely place samples in sequence or parallell, pitch shift them and change their start and length. The GUI communicates (using OSC) with a ChucK program that makes up the sound generating back-end.
SoftMusic is a Java app I made on my hotel room while being on a dull job in Stockholm for half a year. It uses a set of homespun algorithms to generate MIDI music, depending on a large set of configuration parameters. I don't think it works properly, I have been meaning to check it out to fix bugs for a time.