Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

Music Theory - Genetic Algorithms and Python

EuroPython Conference via YouTube

Overview

This course aims to teach learners how to apply genetic algorithms and Python programming in the context of music theory. By the end of the course, students will be able to understand and implement contrasting melodies, melodic shapes, contours, and density using computer-generated counterpoint techniques. The course covers the basics of genetic algorithms and their application in creating acceptable musical solutions efficiently. The teaching method involves a combination of theoretical explanations and practical examples using Python programming. This course is intended for individuals interested in music theory, computer-generated music, and programming enthusiasts looking to explore the intersection of music and technology.

Syllabus

Intro
TWO CONTRASTING MELODIES
CONTRASTING MELODIC SHAPES
CONTRASTING CONTOURS
CONTRASTING MELODIC DENSITY
COUNTERPOINT IS INGENIOUS As demonstrated by J.S. Bach (contrapuntal genius)
SPOT THE TRANSFORMATION(S)
BUT HOW DOES IT WORK?
JOHANN JOSEPH FUX
GRADUS AD PARNASSUM Steps to Parnassus (dwelling place of the gods).
CANTUS FIRMUS ( Fixed sang based on medieval plainchant)
RULES CONCERNING PITCH
RULES FOR MOVEMENT THROUGH TIME
HOW CAN I USE FUX'S SPECIES TO MAKE COMPUTER GENERATED COUNTERPOINT?
THE PROBLEM: • Silly/huge number of potential results. • Needle in a haystack most potential results wrong • Generating solutions algorithmically is hard. Furthermore, any solution should be: • Timely (take less time than a practiced human). • "Acceptable" (fooling most people most of the time). (In other words, on a par with a human derived solution)
GENETIC ALGORITHMS! • Find acceptable solutions relatively quickly.
WORDOLUTION: AN EXAMPLE / DETOUR Wordolution evolves a solution from a starting population of words containing random letters
The fitness of a candidate solution is based upon its Levenshtein distance (number of different characters) from the target word.
The crossover function is synonymous with breeding new candidate solutions. The genetic information from both parents is mixed together to create two new children
ENCODING MUSIC FOR FOOX
FOOX FITNESS FUNCTIONS
A SIMPLE COMMAND
FIRST SPECIES COUNTERPOINT
THIRD SPECIES COUNTERPOINT
FIFTH SPECIES (UNFINISHED) Fifth species combines all of the previous species as well as extra rules concerning ornamentation of the melody

Taught by

EuroPython Conference

Reviews

Start your review of Music Theory - Genetic Algorithms and Python

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.