AI Composer

Written in Scala for the artificial intelligence class in my master's degree program at the University of Minnesota, Twin Cities.This project explores the potential for generating music using artificial intelligence. It generates notes via the musical technique of counterpoint to facilitate harmonically cohesive melodies. Two methods are exposed, one for generating a cantus firmus line and one for generating a first species for a given cantus firmus. Both methods adhere to a set of rules which dictate which notes can be chosen when.

Latest Release

Source Code

Installation

maven

    
<dependency>
    <groupId>com.bengangllipson</groupId>
    <artifactId>ai-composer_3</artifactId>
    <version>3.0.0</version>
</dependency>
    

gradle

implementation("com.bengangllipson:ai-composer_3:3.0.0")

sbt

libraryDependencies += "com.bengangllipson" % "ai-composer_3" % "3.0.0"

Usage


import com.bengangllipson.aicomposer.api.AiComposer;

void main() {
    AiComposer aiComposer = new AiComposer();
    List <String> cantusFirmus = aiComposer.generateCantusFirmus();
    List <String> firstSpecies = aiComposer.generateFirstSpecies(cantusFirmus);
}

Dependencies

Cantus Firmus Rules

First Species Rules

Research Paper

The project includes a research paper discussing my implementation.

research-paper/