Although I studied music in college (CalArts, early 80s) I have produced only a small amount of original music since, my interests having gravitated more towards computer programming.
In December of 2002, I threw myself a large birthday party and invited a lot of musician friends. We played and sang music of various sorts, and a swell time was had by all. Since then, my interest in making music has increased.
I've been playing Jazz and Rock with various friends. This spring I sang Tenor with local acapella ensemble Morris Madrigals, as well as with the Valley College choir.
In addition, I've begun making an attempt to record some of the pop tunes I've written over the years, but have rarely (if ever) performed. You can hear some of my early efforts here. These tracks for the most part consist of me simulating various instruments (poorly) on my MIDI keyboard, and overdubbing vocals. Upon hearing them, you'll have a better understanding of why I'm a professional programmer (rather than a professional musician). You've been warned. :)
In the process I have amassed a small collection of interesting music software. This stuff is addicting.
One of my earliest computer programs, dating from my CalArts days composed contrapuntal music (poorly) in the style of Palestrina.
In 1997, I read a lot of books about making computer-generated sounds. The result of this work was Syd, a graphical instrument editor and software synthesizer for the Macintosh, later ported to Windows.
Here is A MIDI version of Terry Riley's seminal piece 'In C'. I created this MIDI file using KeyKit, a MIDI programming language by Tim Thompson. The Keykit source code used to make this file (much shorter than the actual midi file) is here.
MIDI to Graphics
In the mid-90s I wrote a program, which creates real-time computer animation in response to a live MIDI data stream. In other words, when I play the piano, cool stuff happens on the computer screen that matches exactly what I'm playing.
This program works by extracting various quantifiable musical elements from the MIDI data, such as note loudness, duration, pitch, rhythm, choice of chord, harmonic changes, etc and uses these numbers to control various graphical elements of the animation, such as number of objects, size, color, speed, direction of motion, etc.
The result is a hypnotic display that matches the music perfectly - I believe it is especially suitable for music which has a high degree of precision and clarity, such as classical and baroque music. But it is also fun for Rock and Blues.
I've also made modifications to the program so that some elements of the animation can be choreographed by inserting triggers in a prerecorded MIDI data stream, and I've also added support for using it as a mechanism for creating real time Karaoke graphics that can match the chosen tempo of the performer.
This technology is perhaps most suitable for live performance, however, and would be a great addition to an effects laden stage show.
I am currently working on an OpenGL version of this software that uses MIDI control in conjunction with my kaleidoscope programs.