SyMuPe: Affective and Controllable Symbolic Music Performance

1Skoltech, 2Peachnote GmbH
ACM Multimedia 2025

PianoFlow in Action: A demonstration of how different text prompts and emotional cues dynamically alter a piano performance, controlling its tempo, dynamics, and articulation.

Abstract

Emotions are fundamental to the creation and perception of music performances. However, achieving human-like expression and emotion through machine learning models for performance rendering remains a challenging task. In this work, we present SyMuPe, a novel framework for developing and training affective and controllable symbolic piano performance models. Our flagship model, PianoFlow, uses conditional flow matching trained to solve diverse multi-mask performance inpainting tasks. By design, it supports both unconditional generation and infilling of music performance features. For training, we use a curated, cleaned dataset of 2,968 hours of aligned musical scores and expressive MIDI performances. For text and emotion control, we integrate a piano performance emotion classifier and tune PianoFlow with the emotion-weighted Flan-T5 text embeddings provided as conditional inputs. Objective and subjective evaluations against transformer-based baselines and existing models show that PianoFlow not only outperforms other approaches, but also achieves performance quality comparable to that of human-recorded and transcribed MIDI samples. For emotion control, we present and analyze samples generated under different text conditioning scenarios. The developed model can be integrated into interactive applications, contributing to the creation of more accessible and engaging music performance systems.

Highlights

1. Unconditional Piano Performance Rendering

MIDI samples were synthesized using Pianoteq.

Baroque Period
Johann Sebastian Bach
Fantasia and Fugue in A Minor, BWV 944
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00
Johann Sebastian Bach
Invention No.11 in G minor, BWV782
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00
George Frideric Handel
Suite No.7 in G Minor, VI. Passacaille
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00
Classical Period
Ludwig van Beethoven
Piano Sonata No.25 in G, Op.79 (Andante)
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00
Ludwig van Beethoven
Piano Sonata No.30 in E Major, Op.109 (III. Andante)
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00
Wolfgang Amadeus Mozart
Piano Sonata No.11 in A Major, K.331 (Alla Turca)
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00
Romantic Period
Franz Schubert
Valses sentimentales, D.779 (Waltz in A major)
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00
Frederic Chopin
Ballade No.1 in G Minor, Op.23
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00
Frederic Chopin
Nocturne No.1 in B‑flat Minor, Op.9 No.1
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00
Franz Liszt
Ballade No.2, S.171
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00
Franz Liszt
Hungarian Rhapsody No.6
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00
Impressionism / Early Modern
Mikhail Glinka
"The Lark" from A Farewell to Saint Petersburg
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00
Maurice Ravel
Jeux d'eau, M.30
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00
Erik Satie
3 Gymnopédies (I. Lent et douloureux)
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00
Late Romantic / Other Styles
Sergei Prokofiev
Toccata, Op.11
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00
Edvard Grieg
Piano Sonata, Op.7 (Andante molto)
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00
Edward Elgar
Salut d'amour, Op.12
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00
Scott Joplin
Maple Leaf Rag
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00
Mily Balakirev
Islamey, Op.18
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00
Sergei Rachmaninoff
Piano Sonata No.2 in B‑flat Minor, Op.36 (Allegro molto)
Deadpan
0:00 / 0:00
Dataset
0:00 / 0:00
PianoFlow
0:00 / 0:00
VirtuosoNet
0:00 / 0:00
DExter
0:00 / 0:00
MLM
0:00 / 0:00
EncDec
0:00 / 0:00

2. Text-Conditioned Performance Rendering

Samples from Figures 3 and 4

Figure 3 from the paper showing emotion-controlled inference results.
Wolfgang Amadeus Mozart
Piano Sonata No.11, Mov. 3 “Alla Turca”
3a. Unconditional
0:00 / 0:00
3b. "anger emotion"
0:00 / 0:00
3c. "dreamy emotion"
0:00 / 0:00
3d. "sad emotion"
0:00 / 0:00
3e. "thunderstorms & lightning"
0:00 / 0:00
3f. "angry and sad"
0:00 / 0:00
Figure 4 from the paper showing performance inpainting results.
Wolfgang Amadeus Mozart
Piano Sonata No.11 in A Major, K.331 (3rd Movement: Alla Turca)
4a. from "passionate" to "lento"
0:00 / 0:00
Ludwig van Beethoven
Piano Sonata No.25 in G, Op.79 (Andante)
4b. Inpaint notes: pitch≤C4
0:00 / 0:00

Additional Samples

Ludwig van Beethoven
Piano Sonata No.22 in F Major, Op.54 (I. In tempo d'un minuetto)
Dataset Sample
0:00 / 0:00
Unconditional
0:00 / 0:00
"comical"
0:00 / 0:00
"depressed"
0:00 / 0:00
"fierce"
0:00 / 0:00
"rapidly"
0:00 / 0:00
"capricious"
0:00 / 0:00
Scott Joplin
Rose Leaf Rag
Dataset Sample
0:00 / 0:00
Unconditional
0:00 / 0:00
"average and even"
0:00 / 0:00
"like a lullaby song"
0:00 / 0:00
"a sprinter is running"
0:00 / 0:00
"a romantic weekend"
0:00 / 0:00
"chaotic with abrupt changes"
0:00 / 0:00

3. Emotion Classifier Evaluation

Emotion misclassification co-occurrence graph

Emotion classifier predictions. The predictions are represented in the form of a label co-occurrence graph. Node sizes show the number of total (light blue) and correct (orange) label assignments. Edge directions and colors illustrate the relative number of misclassifications (A → B means that A was misclassified as B).

BibTeX

@inproceedings{borovik2025symupe,
  title = {{SyMuPe: Affective and Controllable Symbolic Music Performance}},
  author = {Borovik, Ilya and Gavrilev, Dmitrii and Viro, Vladimir},
  year = {2025},
  booktitle = {Proceedings of the 33rd ACM International Conference on Multimedia},
  pages = {10699--10708},
  doi = {10.1145/3746027.3755871}
}