No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
Canon poly
Twinkle poly

Automatic Music Accompanist using Hidden Morkov Models


We construct a comprehensive system and show how it works with detailed theoretical induction, including score follower training/decoding and score accompanist. The detail can be found in Paper.

We propose a fast decoding algorithm, reduced computational complexity. It is able to work in real time with practical length scores. We build up two hands parallel HMM to improve accuracy and computational speed.



This program is based on Max 7. It's better to run this program on this version or above.

You will need a keyboard before you go. The keyboard should be able to support MIDI format output (and input, not a must). image

How to use

Connect your keyboard with a computer. PC, laptop, Pad, Mobile Phone are all okay. The connection way can be either cable or bluetooth.

If you don't have a keyboard, there is no need to worry. You can use the virtual keyboard I provided. But you cannot use virtual keyboard to do polyphonic performance, like a chord, since you cannot achieve this using a mouse or touch board. (A Pad is fine.)

image Just drag the SCORE_FOLLOWER XXX.pat file into Max 7 or above. The GUI is already settled for you. Enjoy it!

About the Demo

Here We present two pieces of music Canon in D major and Twinkle, Twinkle, Little star both in monophonic and polyphonic version with automatic accompanist. These two HMMs are trained by HMM machine learning seperately.