Pereval: Piano Performance Evaluation toolkit
Integrating Contextual Embeddings into Evaluation of Expressive MIDI Piano Performances
Dmitrii Gavrilev, Ilya Borovik, and Vladimir Viro
This is an official repository for the paper "Integrating Contextual Embeddings into Evaluation of Expressive MIDI Piano Performances" (Accepted at ISMIR 2026).
Overview
In this paper, we tackle the problem of evaluating and comparing sets of piano MIDI performances.
Traditional metrics (which we coin attribute-scoped), such as Pearson correlation and reconstruction error, that are most commonly used in Expressive Performance Rendeering (EPR) have several drawbacks. Namely, they are limited by a single expressive attribute, such as tempo, articulation, and dynamics of a performance, disregarding other musical aspects and context. Second, they often require a note-level alignment between a score and a performance, hindering the scalability of evaluation.
We adapt recently proposed kernel-based methods from image and audio generation domains for EPR. Deep feature metrics, Kernel Music Distance (KMD) and Kernel Performance Distance (KPD), leverage rich contextual features from Aria and CLaMP3 symbolic music understanding models. The adapted metrics are scalable (do not require alignments) and contextual.
In short, this project aims to go beyond the traditional metrics for expressive MIDI piano performances and unify them under one toolkit to simplify evaluation routines for MIR practitioners.
Installation
- Prerequisites:
- Install pereval:
pip install -U pereval
Repository structure:
/pereval/contains the main utilities (such as alignment, feature extraction, calculation of attribute-scoped and deep feature metrics) used in our research paper/examples/contains the notebooks for data analysis and examples of usage
Command-line interface:
pereval-save-alignment- calculates the note alignment using Parangonarpereval-correlation- calculates attribute-scoped correlations between sets of performancespereval-kde- calculates Kernel Density Estimators for attribute-scoped KL-divergencepereval-embed-aria- extracts Aria embeddingspereval-shift-notes- shifts (truncates the first few) notes in performancespereval-permute-velocity- transfers the velocities of the notes between performances
Notebooks:
mahalanobis_pseudo_ratings.ipynb- comparing Mahalanobis-based Aria pseudo-ratings with human MOS from the listening test
Acknowledgements
We would like to thank the authors of FADtk, KADtk, Aria, CLaMP3, Parangonar, and symusic for their open source contributions in music and audio research.
Metadata
Release files for pereval 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pereval-0.1.1.tar.gz | 17.3 kB | Without provenance | Details for pereval-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pereval-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for pereval-0.1.1-py3-none-any.whl |
Total release size: 39.0 kB
Release files / pereval-0.1.1.tar.gz
| Download URL | pereval-0.1.1.tar.gz |
|---|---|
| Size | 17.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
78d19be3164c8fc536a8bfd36dcfba604e3fbecd0c8aa0e7f74dd3c6a203cb47
|
|
BLAKE2b-256 checksum How to use checksums |
1b9ed5a0bc4d533b5c196a5c9e071618f7cc88e82a3d486ae6a1b71dce9453cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.1 CPython/3.13.14 Linux/5.4.0-172-generic
|
Release files / pereval-0.1.1-py3-none-any.whl
| Download URL | pereval-0.1.1-py3-none-any.whl |
|---|---|
| Size | 21.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
522fc582656cd1ba78a22c86e113457ed1ee95be836c1bb35d53dbc84ab38e12
|
|
BLAKE2b-256 checksum How to use checksums |
b08696a33fddcfc9bd359e3ace8c771f3ca1da2e161176f6630c00cef6137e86
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.1 CPython/3.13.14 Linux/5.4.0-172-generic
|
Security for pereval 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.