Piano Accompaniment Generation
This project explores what mixed AI models can learn from real piano accompaniment performances, including musical patterns, coherence based on song structure, and expressive articulation by the pianist. We are investigating what can be achieved using AI models and a very limited dataset.
Demos are available for audition below.

Copyright notice: I do not claim ownership of the underlying song compositions or recordings used in these demos, and I reserve copyright in the original, project-generated MIDI accompaniment outputs to the extent permitted by law. The materials are presented solely for academic and research purposes consistent with fair use; full-length excerpts are provided because the research evaluates accompaniment coherence and section-level structure across entire songs.
Demos
The following demos use the Chinese pop song Ren Jian Yan Huo (Chinese: 人间烟火) by singer Cheng Xiang (程响) for academic evaluation only. Vocals are included solely to show alignment with the piano accompaniment; the vocal track is intentionally reduced by 15 dB to highlight the piano, and no other post-processing is applied. The training dataset focuses on Chinese pop, so Ren Jian Yan Huo was selected to match that data bias, and it is one of my favorite songs.
Selected demo tracks (MP3) with corresponding MIDI files. I am not a musician, so the comments below are technical rather than artistic, focusing on factors such as alignment with training data statistics, per-song pattern repetition, and whether patterns match their intended roles.
- Quiet Sparse - one of my favorite versions; it sounded good even in the project's earliest iterations.
| MIDI - Alberti - the intro repeats patterns; later variations are better.
| MIDI - Arpeggio - too busy for the song style.
| MIDI - Block Chords - I like this version, but there are frequent high-register collisions with the melody.
| MIDI - Broken Chords - the intro is unexpectedly intense; it becomes less intense later, but overall it does not match the original song style well.
| MIDI - Gentle - overall it is gentle, but some note attacks are not gentle; this may be a dataset classification and labeling issue.
| MIDI - Ostinato - the intro repeats patterns; later variations are better.
| MIDI - Slow - too much contrast in dynamics, which was automatically chosen by the transformer.
| MIDI - Sparse - really sparse, with lots of breathing space, but not quiet.
| MIDI - Stride - I like it on first listen, but frequent expectation changes can feel unstable, with beat positions that seem misaligned.
| MIDI
Publications
To be updated.