Download presentation
Presentation is loading. Please wait.
Published byErin Ball Modified over 9 years ago
1
Automated Musical Part Writing Kevin Deisz
2
Input Positive integer - dictates the number of chords to be created Instrument file (python) - file that is written to dictate certain rules in order to write for different ensembles Positive integer - dictates the number of chords to be created Instrument file (python) - file that is written to dictate certain rules in order to write for different ensembles
3
Process Creates an array of size that was input Follows the chord progression map for a major key to fill up the entire array with random new chords Creates an array of size that was input Follows the chord progression map for a major key to fill up the entire array with random new chords
4
Process - Domains Creates four arrays - one for each instrument that was input Loops through a newly created map and adds all possible values for voice for each chord to the corresponding array Creates four arrays - one for each instrument that was input Loops through a newly created map and adds all possible values for voice for each chord to the corresponding array
5
Process - Constraints Spacing error - no two voices can be more than one octave apart (more than 7 notes between) Voice crossing error - higher voices cannot go lower than lower voices and vice versa Spacing error - no two voices can be more than one octave apart (more than 7 notes between) Voice crossing error - higher voices cannot go lower than lower voices and vice versa
6
Process - Constraints (cont.) Parallel fifths - no two voices can move in the same direction and end and begin with 4 notes in between Parallel octaves - same as parallel fifths except with 7 notes in between Parallel fifths - no two voices can move in the same direction and end and begin with 4 notes in between Parallel octaves - same as parallel fifths except with 7 notes in between
7
Process - Constraints (cont.) All of these constraints can be broken down into binary constraints - all one function
8
Process - Constraints (cont.) A new map is created in which every voice is added Every voice then has a corresponding array of pairs that contain neighbors and a pointer to the function A new map is created in which every voice is added Every voice then has a corresponding array of pairs that contain neighbors and a pointer to the function
9
Process - CSP All three maps - assignments, domains and constraints - are then passed to the csp function Since all of the constraints were already given and all of the possible values already calculated - the music is returned All three maps - assignments, domains and constraints - are then passed to the csp function Since all of the constraints were already given and all of the possible values already calculated - the music is returned
10
Extra Methods At this point, the basic arrays of notes are returned Top two voices are then passed to an ornamentation method, which adds eighth notes Another method makes the last note a whole note At this point, the basic arrays of notes are returned Top two voices are then passed to an ornamentation method, which adds eighth notes Another method makes the last note a whole note
11
Output The python program outputs a text file in the format of a lilypond file Python program then executes the lilypond utility (“lilypond --png file.ly”) File is then displayed on a webpage http://www.tjhsst.edu/~kdeisz/musicwriter http://www.tjhsst.edu/~kdeisz/musicwriter The python program outputs a text file in the format of a lilypond file Python program then executes the lilypond utility (“lilypond --png file.ly”) File is then displayed on a webpage http://www.tjhsst.edu/~kdeisz/musicwriter http://www.tjhsst.edu/~kdeisz/musicwriter
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.