I developed software to help music students with “ear training”, learning to identify musical sounds. Existing solutions are unpopular with students, so I’m taking a different approach, focusing on the flow of learning without distraction. Sebastian is now available for purchase, with a free demo.
Fugue Analysis with Hidden Markov Models
As a research project for a graduate AI course, I wrote a Java program that performed a basic thematic analysis of fugues, similar to what music students do in a counterpoint course. The program searches a fugue for instances of the subject and countersubject, including transformations and fragments. The method is like the bioinformatics technique that applies HMMs to DNA sequence analysis, looking for DNA fragments that generate “similar” proteins. The catch is that “similar” is tricky to define for both proteins and fugue subject fragments, but a probabilistic approach using HMMs combined with some prior knowledge is effective. I presented this at a couple of graduate research fairs at UNL.
I’m a huge fan of Risk: 2210 and Risk: Godstorm, and back in 2005 I created a Java program to play them online. Invade Earth featured online play, decent AI, lots of customization, and complete implementations of the rule sets for several variants of Risk. It was also my first experience writing software on that scale, so I made some naïve design choices and had to deal with the consequences. But it was a great learning experience and lots of fun. I eventually made it open source, and other people contributed code and graphics.