Inspiration

I have been a musician since an early age and something I have always noticed is how hard it is to come up with new ideas. It is the nature of music to repeat ones' self, yet improvisation (especially in jazz) requires a vast amount of randomness in a sense. My idea was to take a certain set of harmonic rules and come up with a way to generate all the permutations of it, or at least a number of random permutations that fit the rule. These could then be used to practice, compose, inspire etc.

What it does

This class that I call CantusFirmus takes an array of integers representing the semitones that are the basis of Western harmony (C, C#/Db, D, ...). Within the class there are defined a number of methods that analyze the progression of notes, such as breaking it down into specific and generic intervals. It also has methods to check whether the entered series of notes does indeed follow the rules necessary to be a cantus firmus (diatonic, no tritone intervals, no melodic perfect fourths etc.) The most important method runs through all of these checks and determines if the entered notes are a proper cantus firmus or not. The main method utilizes this class to check a series of randomly created possible 'cantus firmi' and then outputs those that are proper.

How I built it

I first implemented a series of methods to analyze the series of notes and then used those to determine whether the progression of notes was legal or not.

Challenges I ran into

Because there are so many notes and intervals, there was a lot of repetitive code. This won't be a problem when I extend the idea though because the repetitive nature of the code at the beginning was defining what functions as a musical concept not just specifically with respect to a cantus firmus. These methods could also be applied on any series of notes and then be used fairly simply to analyze them with different rules.

Accomplishments that I'm proud of

Utilizing an enum for the intervals between notes was one programming concept that saved me a lot of conceptual thinking.

What I learned

It's amazing to think how many series' of notes do not fit into normal Western theory, something very evident when looking at how few permutations of notes work as cantus firmi versus not.

What's next for Music11

I have recently been studying George Garzone's (a famous saxophone player) Triadic Chromatic Approach method (also called TCA). This concept is one that takes randomization of different inversions of major, minor, diminished, and augmented triads along with randomized approach notes and puts them together to create sequences of notes and patterns that sound very distinctive in that they are both very in and very out of the key signature. The hardest part of practicing these if forcing yourself to not repeat, a fundamental concept in TCA, which is why the next step for Music 11 is to create a program that utilizes what I have already defined for music in terms of cantus firmi to generate random series' of notes constituting TCA, and then eventually other kinds of harmonies. Any harmony with a rule is a possibility.

Built With

Share this project:

Updates