Chorale Harmonization in the Style of J.S. Bach Alex Chilvers Menno van Zaanen Macquarie University Tilburg University North Ryde, Australia Tilburg, The Netherlands alex.chilvers@mq.edu.au mvzaanen@uvt.nl Alex Chilvers Menno van Zaanen Chorale Harmonization in the Style of J.S. Bach
Overview Introduction Harmonization as classification Class and feature encoding Results Conclusion and future work Alex Chilvers Menno van Zaanen Chorale Harmonization in the Style of J.S. Bach
Introduction Automatic harmonization generate melody lines (harmony) given single melody line Johann Sebastian Bach’s chorales contain soprano, alto, tenor, bass voices written starting from soprano voice only are relatively short pieces is large collection of similar pieces Alex Chilvers Menno van Zaanen Chorale Harmonization in the Style of J.S. Bach
Previous work Markov models (Biyikoglu, 2003) Probabilistic inference (Allan and Williams, 2005) Constraint-based systems (Pachet and Roy, 2001) Probabilistic finite state grammars (Conklin and Witten, 1995) Neural networks (Hild, Feulner, and Menzel, 1992) Alex Chilvers Menno van Zaanen Chorale Harmonization in the Style of J.S. Bach
Harmonization as classification Music Extract features (soprano voice) ML classifier Feature vectors (feat. vector → class) Harmony (additional 3 voices) Alex Chilvers Menno van Zaanen Chorale Harmonization in the Style of J.S. Bach
Class and feature encoding Class encoding: how to encode the harmony? 12-bit vector First bit is tonic, second bit is semi-tone up, etc. G ˇˇˇ ⇒ 100010010000 (C is tonic) Maximum of three 1 s in vector (three voices) Exact octave information is lost Voice ordering is lost Alex Chilvers Menno van Zaanen Chorale Harmonization in the Style of J.S. Bach
Class and feature encoding Local features Properties of the soprano note Contextual features Properties of context of soprano note Global features Properties of entire piece Alex Chilvers Menno van Zaanen Chorale Harmonization in the Style of J.S. Bach
ˇ ˇ ˇ ˇ ¯ ˇ` ˘ Local features Pitch semi-tonal distance from tonic G 0 2 4 Duration denominator of note length G 1 2 4 4. Alex Chilvers Menno van Zaanen Chorale Harmonization in the Style of J.S. Bach
( ˇ ( ˇ ˇ - ˇ ˇ ˇ ˇ ˇ Contextual features Location of note in bar fraction of note start with respect to metre G 4 4 1 2 3 4 4 4 4 4 Location of bar in piece fraction of bar with respect to piece length Surrounding soprano notes encoded as local features ( n = 3) ( n = 1) G * ( * ↑ Previous classifications Previous results of classifier (not used) Alex Chilvers Menno van Zaanen Chorale Harmonization in the Style of J.S. Bach
Global features Major/minor Is the piece in major or minor key? Metre What is the metre of the piece? Alex Chilvers Menno van Zaanen Chorale Harmonization in the Style of J.S. Bach
Results 230 J.S. Bach chorales Compute harmony for each soprano note Measure accuracy of classified chords Only count exactly matching Other “musically correct” chords not counted 10-fold cross validation Baseline is major triad (majority class) TiMBL machine learning package k -NN classifier Alex Chilvers Menno van Zaanen Chorale Harmonization in the Style of J.S. Bach
Results Baseline 8.71 (0.86) TiMBL 41.71 (5.80) TiMBL is significantly better than baseline All features used (apart from previous classifications) Too many errors in classification Alex Chilvers Menno van Zaanen Chorale Harmonization in the Style of J.S. Bach
Results Baseline 8.71 (0.86) TiMBL (IB1) 41.71 (5.80) TiMBL (IGTree) 36.77 (6.20) TiMBL is significantly better than baseline All features used (apart from previous classifications) Too many errors in classification Classifier settings also have influence Alex Chilvers Menno van Zaanen Chorale Harmonization in the Style of J.S. Bach
Conclusion Goal: automatic harmonization (of Bach chorales) Use standard machine learning techniques Simple features give encouraging results Perform local harmonization (chord for each soprano note) Classification loses exact octave and voice ordering Previous classifications contain too much noise Alex Chilvers Menno van Zaanen Chorale Harmonization in the Style of J.S. Bach
Future work Add additional features Trends (with respect to previous notes) Previous classifications Remove octave and voice ordering restrictions Evaluate with “musical” correctness accuracy Incorporate ornamentation in harmonization Compare against other machine learning techniques/settings Alex Chilvers Menno van Zaanen Chorale Harmonization in the Style of J.S. Bach
Recommend
More recommend