Skip to project
← Projects

PROJECT_06 / Algorithmic composition

Automated Musicians

Music theory, pattern extraction, and a composition pipeline.

STACKPython · NumPy · Pandas · ABC notation

01

Overview

The team explored automated music generation through programmed music theory and pattern recognition. The system was divided into three stages so each step supplied structured information to the next.

My contribution

As part of the capstone team, I contributed to implementing music-theory models, extracting recurring patterns, and combining those patterns into a composition workflow.

02

The problem

Random notes are not enough to produce a coherent composition. The system needed representations of scales, rhythm, chords, and recurring musical relationships before it could generate meaningful sequences.

03

Engineering approach

We chose sheet music rather than sound files to stay aligned with the music-theory focus. Compositions were encoded in ABC notation, recurring patterns were extracted, and the generator combined them within the modeled musical structure.

  1. 01Sheet music
  2. 02ABC notation
  3. 03Pattern extraction
  4. 04Theory-guided composition

Technical decisions

Use symbolic input

ABC notation makes notes and relationships directly available to the algorithm without first solving audio transcription.

Separate the stages

Theory modeling, extraction, and generation each have a distinct purpose and an explicit handoff.

04

Pattern extraction & generation

Hundreds of compositions provided data for finding common musical structures. The composition stage merged extracted patterns using the theory models developed earlier.

05

Technical challenges

01

Encoding musical rules

Problem
A composition algorithm needs more than a list of pitches.
Approach
Model scales, chords, rhythm, cadences, and time signatures.
Result
Provide structure for extraction and generation.
02

Combining patterns coherently

Problem
Useful fragments do not automatically form a complete song.
Approach
Integrate recurring patterns through the musical algorithm models.
Result
Generate new compositions from learned structures.
06

Result & lessons

The team generated unique music and presented the project at the 2022 UNB Engineering Symposium, where it attracted CBC coverage.

  • Domain rules give algorithms a stronger foundation than unconstrained generation.
  • Representation choices determine which patterns are easy to extract.
  • A staged pipeline makes a complex creative process easier to reason about.