T2G Version 2

17 Dec 2008

Version 2 of T2G with new and improved tonality segmentation algorithm.

Here is version 2 of T2G, which I have just completed. Externally it looks and works the same as the version I posted a while earlier (see its Getting Started Guide for instructions on using it), but it uses a new tonality segmentation algorithm which greatly improved on that of its predecessor.

I was writing up the harmonic analysis algorithm I devised for T2G for publication. For many reasons (which I describe in my write-up) the T2 algorithm is already far better than any algorithm for solving this problem in the current computer music literature. I was using the set of tunes in Appendix D of Jerry Coker’s book Improvising Jazz as test data for the algorithm. These tunes are represented by key centers and Roman numeral chords and provide a good benchmark for the performance of harmonic analysis algorithms. My previous version of the segmentation algorithm performs reasonably well and generates the same segmentation shown in Coker’s book for many of the tunes.

But a complete description of the old segmentation algorithm would need to include an explanation of why it failed for some of the test cases. I thought about how much I wouldn’t enjoy writing that. So I stopped writing and started to work on a better algorithm. After much algorithm design, programming, experimentation, and hand-checking program output, I arrive at the current algorithm. Well, it’s good! Among the 78 tunes in Coker‘s appendix, the new algorithm generates the same exact segmentation for 56 of them. For 14 other tunes, it generates the same sequences of key centers but assigns dominant chords to consecutive key centers differently. This is because the algorithm prefers to group dominant chords with chords into which they resolve. For the remaining 8 tunes, the algorithm either adds segments to or omits segments from the segmentations in Coker’s book. For each of these tunes, however, we can present a good case for its decision.

Did I mention this new algorithm is good :-)?

So here’re the downloads:

[Update 2015-01-25: version 2.0.3. Updated for Mac OS X Mavericks and Yosemite. ]

  • T2G version 2.0.3 (MD5 checksum: e643612aaf6edfa01084cd2fc5ae6c0c)

    Note that since T2G isn’t signed, OS X’s Gatekeeper will prompt you to explicitly allow its execution the first time it is opened.

    The Quicktime Player in newer versions of OS X doesn’t play MIDI files so some other application must be selected as the default handler of MIDI files for “Chart -> Generate and Open” to work correctly.

[Update 2013-07-17: version 2.0.2. Compiled for Mac OS X 10.7 target; for Intel Macs only. ]

[Update 2009-01-17: version 2.0.1. Tempo change in chart editor correctly written to MIDI file.]

Note that T2G is distributed under a license that permits free research, educational, and non-commercial use, but prohibits any redistribution. Mac OS X 10.4 or above is required to run it.

Here is the set of test data in case anyone wishes to verify my claims above. A command-line version of T2 with the new tonality segmenation algorithm and a draft of my paper will be available quite soon.

Category: Jazz, Programming, T2