Add in a couple false starts and having to update tons of tests and it winds up eating up quite a bit of time. The tons of tests are a result of it being too complicated in the first place, so it's a good demonstration of how complexity consumes an non-linear amount of time. Added to that is that I'm dealing with trees which have two-dimensional structure, which are hard to visualize and to write down (in fact the tests have ASCII-art diagrams next to them). Actually, I think the greatest time sink is general disillusionment. When I'm unsatisfied with the whole situation I spend a lot of time trying to step back to figure out what the real problem is, or getting distracted because there's no real sense of momentum to keep my focus, or playing games because I'm just too tired to want to deal with the hairball.

The general problem is one of composing together 2D score structure, or rather turning it into the 1D structure needed to actually evaluate it. The score can get quite complicated, because there are transformations that apply to all notes, those that only apply to one melodic line, those that apply only to lilypond realization, and those that only apply to synthesizer realization. But the key to having a usable score notation is that the individual parts compose together in a natural and useful way.
No comments:
Post a Comment