algorithmic counterpoint, from Gradus ad Parnassum