I'm working on a music sequencer, and this is a development blog for it.
As I work, I find myself taking notes to myself. Usually they're just fragmentary bits planning for some feature or bug fix, but sometimes I write more, and it's occurred to me that maybe sometime in the future it will be interesting to have a more organized record of my thought process. And rather than it going in a bunch of fragmentary files in some directory I'll lose track of, maybe I can put it on the web. So this is mostly a record for myself, but maybe someone else will find it interesting too.
I've been thinking about the need for a new music composition program and how I could do it ever since highschool, so that's about 15 years now. I went through some more organized planning in college but wasn't confident enough in my programming skill to know where to start. After that I got wrapped up in performance and haven't seriously written much music for a long time. Around 6 years ago I was back in the US and didn't have a job and thought it was a good time to start on a project, so I spent about a month and got most of the UI up---the UI is very simple so that's not saying much. Then I got a job at Google and got distracted for a long time (though I do remember I discussed some parts of it in the interviews). Then, about 3 years ago I got serious about working on it again, rewrote the UI stuff and got started on the rest.
So the first darcs checkin is Jan 2008. I thought it might take a few years, but it's been three so far and will probably be a while yet. In the meanwhile, I've learned another language, lived in another country, and gotten married. This is by far the largest project I have ever attempted. I'm wary of the endless developing and never completing trap, but it really has turned out to be much more complicated than I thought. Time will tell.
I'd like to think I've learned a lot, about application design (it's also the first GUI-owning program I've written), about dealing with larger programs, and about haskell, which is the main implementation language. But it's hard to judge about these things. All I can say now is that I've done things that I hadn't previously done, but not whether I could do them quicker or better than I might have previously, or even if I did them particularly well in the first place. Maybe if I keeping notes will help with the long term perspective.
Here's the current stats on line count, as measured by wc:
39775 *.hs 268 files
2381 *.h 34 files
5589 *.cc 28 files
496 *.py 7 files
48241 total 337
Oh, and the blog title is a bit of a pun. "Karya" means "work" and can also mean work in the sense of a musical composition, so it seemed an appropriate name for the sequencer.