1 / 11

Automated Musical Part Writing

This program generates musical chord progressions based on user input and applies various constraints to create harmonically correct compositions. The output is a lilypond file that can be viewed on a webpage.

Download Presentation

Automated Musical Part Writing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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

  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

  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

  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

  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

  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

  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

  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

  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

More Related