Dodecafinder (2017)
https://github.com/dpocknee/dodecafinder
ruby
A piece of software that uses a genetic algorithm to find optimal 12-tone rows, given a set of criteria.
Twelve-tone composition was a way of composing music that emerged in Germany at the beginning of the Twentieth Century. At its base was a set of techniques based around the idea of a *Twelve-tone row*. A Twelve-tone row is simply a series containing all 12 pitches within an octave, arranged such that each one occurs only once. There are 479 million possible 12-tone rows (12! = 479,001,600). This makes doing a brute-force search for a row with specific characteristics time-consuming and computationally expensive. Dodecafinder uses a genetic algorithmic approach to reduce the time and computation needed to find rows which optimally match a given set of characteristics.
The software is distributed as both standalone windows .exe file, and as ruby source code.
Full code and documentation: https://github.com/dpocknee/dodecafinder