Steve Carter on Software Development

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

Tuesday, November 11, 2008

THoTH version 2.4

I've just released version 2.4 of THoTH. Read about it here.

Thursday, July 27, 2006

Search, forum, audio

I added the freeware version of Zoom search to my site, to see if I liked it. It's quite impressive, does a good job of indexing. I'll have to make the search capability more readily visible and see if my visitors use it. If so, I may upgrade to the commercial version.

I'm looking into phpBB to add a forum to my site. Looks easy enough, and flexible.

I added an Audio page to THoTH. So now users can not only see music notation for a song or musical exercise, but they can hear it. My plan is to record some of the musical exercises and make mp3 files available to THoTH users. Haven't figured out exactly how to distribute them yet. I think a zip package that would install the files and update the database through a script.

Sunday, April 23, 2006

THoTH 2.0 Released

I've released THoTH version 2.0 (See Overview). I think it's the only program currently on the market that can do chord/scale analysis of chord progressions from MusicXML. Currenlty I only have a couple of MusicXML files provided with the release. I'll be adding more as a free upgrade, and more after that for a small upgrade fee.

Thursday, March 30, 2006

THoTH song form additions

I've decided to add two tabs to the song form: Lessons, and Notation.

Lessons will contain a list of lesson files. Selecting one and clicking the View button will bring up the PDF. At first it will be my lesson PDF files. But the THoTH user will be able to add his own lesson files to the list. This might be helpful to music teachers and students.
The Notation tab will contain a list of notation files (Finale, Sibelius, Notion, etc.) I'll provide a few notation files for the tunes I've provided lessons for, such as "Blue Bossa" and "Body and Soul". Since this is for educational purposes, I think that will fall under the "Fair Use" section of the copyright law. The THoTH user will be able to add his own notation files to the list. Each row in the list, in addition to the file name, will have the name of the notation program that created the file, so selecting a file and clicking View will open the file in the appropriate program (assuming the program can be launched with a file name in the command line).

Sunday, March 19, 2006

THoTH ready for next Beta

I've finished the database analysis engine and worked it into THoTH. I created two test MusicXML file with Finale PrintMusic, and ran analysis in THoTH. The tunes are "Blue Bossa" and "Body and Soul". The analysis looks correct (although I still need to deal a better handling for the D/F# in the bridge of "Body and Soul".

So now the user can add a tune record in THoTH, fill in the name of the MusicXML file, and run an analysis. THoTH will display the analysis, save the analysis to the database, and update the tune record.

Once I've add more MusicXML files, run more analyses, and added more results to the analysis table, I'll be able to to meta-analysis across tunes. Like "what is the most common measure for the appearance of a IVm6 chord?"

Saturday, December 17, 2005

THoTH analysis data-driven

I've created an Analysis table and inserted rules for all dominant seventh chords, based on Bill Leavitt's approach. I can do a simple SELECT statement and get the analysis for any dom7 chord in any key. For example, I can ask, in effect, for the analysis of Ab7 in the key of Bb, and it will tell me bVII7 AbLydianb7 EbRMM (Real Melodic Minor).
So the methodology is in place. No it's just a matter of adding the other rules to the database. That will be a couple of hours work. At that point I should be able to parse a MusicXML file and output the analysis.

Firebird's selectable stored procedure made this task pretty simple.

Saturday, December 10, 2005


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.