/Chord_Accompanist

Python program to create an accompaniment track offline to a recording. Uses the RS200 corpus as a dataset

Primary LanguagePython

Automatic Accompanist

A Python based accompaniment track generator, using existing music files as a rhythmic basis to chords generated by recorded solo audio.

A final project for ECE 477 - Computer Audition at University of Rochester

Intended Use

The intended use of this program is to enter a duration of recording and if the desired output is major or minor, and then sing/play when indicated. The program will, in its early stages, return a .mid file that corresponds to an accompaniment of the song.

Rationale

Use the HMM based chord prediction from such applications like MySong, but add the ability to include a rhythm based on an existing song's onset strength to give the accompaniment a "feel" similar to that of the training song.

Dataset

This program relies on parsing the RS200 dataset, an annotation set of a random selection of songs from Rolling Stone's 500 Greatest Songs of All Time. This dataset is used for generating chord-note alignment sequences that are used for training an HMM that uses notes as observations, and chords as states.

Required Libraries

  • numpy
  • librosa
  • fluidsynth
  • pretty-midi
  • scikit-learn