DeepChoir

Chord-Conditioned Melody Harmonization with Controllable Harmonicity

Shangda Wu1, Xiaobing Li1, Maosong Sun1,2

1Department of Music AI and Information Technology, Central Conservatory of Music

2Department of Computer Science and Technology, Tsinghua University

View the Project on GitHub sander-wood/deepchoir

Chordified JSB Chorales Dataset

As we did not find any full JSB Chorales dataset with human-annotated chord symbols, and as performing harmonic analysis manually is too time-consuming, we carried out the following automated preprocessing.

1. Chordifying: simplify a complex score with multiple voices into a succession of chords in one voice (see Fig. 4a) via a tool in music21.
2. Labelling: rank all chords based on beat strength, then only keep those with the highest scores and add them to sopranos (see Fig. 4b).

We ended up with a total of 366 chorales for training (90%) and validation (10%). Admittedly, these automatically labelled chord symbols are not authoritative from the perspective of harmonic analysis, but they are sufficient for our task.

You can find this chordified version of JSB Chorales dataset in DeepChoir repo.

p1
Figure 4: An excerpt of the processed chorale (BWV 347). The chord symbols in Fig. 4b are converted from Fig. 4a.