Steve Carter on Software Development

Software Development weblog. Mostly about my THoTH Music Learning Software.

Saturday, December 10, 2005

Logical


I've been working on THoTH, translating the program logic into database logic. In the original program, all the rules for chord-scales were in one large "IF" statement, and now I'm moving them into the database. For readers who are confused by this, all it really means is that the rules are being moved from a text file to a database. The rules are based on Bill Leavitt's approach to chord-scale analysis, as he expressed them in his Modern Method for Guitar series.



As I was working on this, I was thinking, "What would Bill think of all this -- translating his chord-scale analysis into computer code?" He never had any involvement with personal computers -- they came into common use very near the end of his life. But he would have liked the logic of the computer. Bill was a very logical guy. His analysis was systematic, which is why it translates so well to computer logic. But Bill also understood exceptions. He used to say, "There is no such thing as 'never' or 'always' in music." I thought of that as I wrote the logic for transposing B-natural up a fifth. In most cases, if the root in question is named with a sharp, when we transpose up a fifth, we name with a sharp: up a fifth from C# is G#, not Ab. And if the root is natural, up a fifth is natural: up a fifth from A is E, not D##. But up a fifth from B is F#. We do this intuitively. But computers are not intuitive; we must tell them about the exceptions.




0 Comments:

Post a Comment

<< Home