This is the first crit for my project. My idea is to generate music using the MFM. I might be using Virtual Keyboard to demonstrate some of the ideas in this presentation.
If you go to the Wikipedia page on Music Theory, it sums all of this up very nicely, so I am just going to cut and paste some of the main points of the first few topics. As the topics progress further down this section, that signals that they are more complicated and I will only try to implement them as the previous things start to work in my project.
Pitch is the “high-ness” or “low-ness” of a tone. For example, the difference between a middle C and a higher C.
An Interval is the distance between two tones. The basic intervals are the unison, second, third, fourth, fifth, sixth, seventh, and octave. Each interval can be varied to be either major or minor (along with a few other things). Intervals are classified as being “consonant” or “dissonant” which I talk about a little later.
A Scale is any set of music notes ordered by their fundamental pitch. A Mode is a type of scale that has a certain set of melodic behaviors. Different modes give music a different feeling. For example, the Ionian mode (or Major scale) gives a song a happy sound. The Aeolian mode (or natural minor scale) gives a song a sad sound. There are lots of other modes that can give music a different feel.
Consonance and Dissonance are subjective qualities that vary in different cultures and over time. Consonance is the quality of an interval or chord that makes it seem stable or complete. Dissonance is the opposite. Dissonant intervals and chords feel incomplete, like they want to “resolve” to a consonant interval or chord. A key thing to note is that context is very important. For example, in one piece, a major second may sound consonant, while the same interval may sound dissonant in a different piece. Dissonance is an essential element of music and is used not only for effect, but as a structural element to create motion and tension.
A Chord is a group of tones sounding simultaneously. Chords are often made with three pitches, but can be made with other numbers of pitches. Like intervals, chords can be classified as major or minor. Chords are important because of their significance in harmony, tension, and release.
Rhythm is produced by the sequential arrangement of sounds and silences in time. Meter measures music in regular pulse groupings, called measures or bars. The time signature specifies how many beats are in a grouping or measure and what the value of a single beat in that grouping is. This is a topic that I will not be focusing on at first with this project because of how complicated this will be to implement in the MFM.
A Melody is a series of tones sounding in succession that typically move toward a climax or tension and then resolve to a state of rest. The melody is usually the most prominent part of a piece of music and it's what you remember and get stuck in your head. Again, this is a topic that is really far out there right now that I can only hope to get to by the end of the semester.
The first thing to do is think of the basic idea of how I want to structure my project. Since this is, like it was pointed out in class, essentially just a fancy sorter, I had two main ideas for how to make/interpret the “music” (quotes added because it probably won't sound like music).
The first idea involves notes moving across the MFM like the data does in the Demon Horde Sorter. The sorters would be specialized versions of the sorters in the DHS and when the notes reach the other side, they are destroyed and output into some external file where they can be listened to. The vertical position of a note as it gets destroyed corresponds to what pitch it will be interpreted as. My initial idea was to have each vertical step up represents a semitone or half-step. My new idea is to have each vertical step up represent one scale step up (the step may be a half or whole step depending on where in the scale you are).
My newest idea involves DRegs and Res being used to control the density/busyness of the music. I'll have special sorters move around and when they see a Res, they will either convert it into a Note or into another Sorter. The Notes are stationary. Their vertical position will represent what pitch they are. Again, each vertical step up will represent one scale step up. A sorter will have to know what scale/mode is being used for the current run along with some other stuff. When it runs into a note, it will either leave it alone or move it based on some Music Theory rules that I will have to code into it. You can run this for as long as you want and when you're done, you will pause the simulation and output the current state of the MFM into a file. I'll have to write something that can look at the output from the left of the grid to the right, playing the “notes”.
As of my most recent idea of how this will work, notes will be stationary and will only know their vertical position and whether they are sharp, flat, or natural. Their vertical position in the MFM will be used to determine what pitch they represent. Each vertical step up in the MFM will represent one scale step up.
A Sorter will float around the MFM and if it sees a Res, it will either turn it into a Note or into another Sorter. If it sees a Note, it has a probability of moving it based on what the notes around it are and some very basic Music Theory rules (like creating or resolving tension). A Sorter will have to know things like their vertical position (so they know what pitches they are near), the scale/mode that is being used, the time signature that's being used (not going to touch this for a while), and the tempo (not going to touch this for a while). I might include some other things like how lenient you want the sorter to be with things like tension and dissonance. For the first iteration of this project, all the sorters will be the same. In the future I might want multiple types of sorters all running at once to create some interesting contrast in the music.
I could also have two different sorters. One sorter would move up and down, the other would move left to right. The up/down sorter would be focused more on the individual notes on a specific beat sounding good together. It would also be able to see a little bit to the sides to make sure nothing was too out of the ordinary. The left/right sorter would be focused on the overall flow of the music. This is more related to melody/harmony/rhythm, so I would probably save this for later.
Like I mentioned in class a few times, there are a few major concerns that I have: