= Music Intelligence =
The objective of this summer project is to create some sort of computer aid for original music composition. Said program should understand the style of the user and use existing music within the context of a single song, and offer suggestions for notes, general phrasing, and harmonic texture depending on user preferences.
== History ==
Currently, there are no known implementations which have solved our problem to the extent we would like to. One program, [https://www.cs.hmc.edu/~keller/jazz/improvisor/ Impro-Visor], has been successful with computational and grammatical approaches for the composition of jazz solos. Impro-Visor has the ability to apply grammars which are extracted from different genres or styles of prominent jazz musicians for stylistic suggestions, but struggles to compose long phrases of music while maintaining musical creativity. Although Impro-Visor is a promising start, we hope to expand our implementation to more styles than jazz as well implement active, near real-time composition in a similar style as the user's.
== Approach ==
We have accomplished music composition based on an existing corpus from the Music21 Python library using first-order and second-order Markov chains.
{{{
#!html
}}}
This approach analyzes the stream of music to generate the probability of each successive note for each note in the song. The program will then pick a following note, and is more likely to pick those which have higher probabilities or weights from the existing state.
We are also doing research into other approaches such as the creation of more complex musical grammars which will also allow us to create more unique rhythms as well as melodies.
== Implementation ==
All development up to this point and for the foreseeable future has/will be written in Python. This decision was made due to the availability of robust libraries such as music21, which will allow us to manipulate and process MIDI sound files, which will be incredibly valuable to us. In addition, we plan to incorporate machine learning methods using existing libraries such as Tensorflow and Keras.
== People ==
{{{
#!html
|
|
|
|
Brian Qiu
ECE Class of 2019 Rutgers University |
Jacob Battipaglia
ECE Class of 2020 Rutgers University |
Anshul Doshi
Engineering Physics Class of 2020 University of Illinois Urbana-Champaign |
Nick Cooper
ECE Class of 2020 Rutgers University |
Project is fun
With thanks to WINLAB Staff and Faculty for hosting the 2018 Intern Program program for which the project would not exist without.
}}}
== Slides ==
* [https://docs.google.com/presentation/d/1G2cNp0pm_dFPyKiLM_vLj17JzaA5hjWcAly_wvloGz0/edit?usp=sharing Week 1]
* [https://docs.google.com/presentation/d/1-7-Pzw09TclZZOIavw9mtv9n9Qo1a8ZJFxKOFv06FDY/edit?usp=sharing Week 2]
* [https://docs.google.com/presentation/d/1i5Y_LKK_Dl7h3nMOJ0PErOfvgLugYDRQaRKiZuV2Bd4/edit?usp=sharing Week 3]
* [https://docs.google.com/presentation/d/1hsVjZTMSEdrWjR1Jf0h4R6V1tMf4duy7KXvw5JYdkR0/edit?usp=sharing Week 4]
* [https://docs.google.com/presentation/d/1-FDWaEWa0iDvAmufJNPgvEDfR-z6Cqk0hpb--96U_sc/edit?usp=sharing Week 5]