Chorale Harmonization in the Style of J.S. Bach Alex Chilvers Menno - - PowerPoint PPT Presentation

chorale harmonization in the style of j s bach
SMART_READER_LITE
LIVE PREVIEW

Chorale Harmonization in the Style of J.S. Bach Alex Chilvers Menno - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

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

slide-2
SLIDE 2

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

slide-3
SLIDE 3

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

slide-4
SLIDE 4

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

slide-5
SLIDE 5

Harmonization as classification Music (soprano voice) Extract features Feature vectors ML classifier (feat. vector → class) Harmony (additional 3 voices)

Alex Chilvers Menno van Zaanen Chorale Harmonization in the Style of J.S. Bach

slide-6
SLIDE 6

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 1s 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

slide-7
SLIDE 7

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

slide-8
SLIDE 8

Local features Pitch semi-tonal distance from tonic

G ˇ

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

slide-9
SLIDE 9

Contextual features Location of note in bar fraction of note start with respect to metre

G 4

4

1 4

ˇ

2 4

ˇ

3 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

slide-10
SLIDE 10

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

slide-11
SLIDE 11

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

slide-12
SLIDE 12

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

slide-13
SLIDE 13

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

slide-14
SLIDE 14

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

slide-15
SLIDE 15

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