Skip to main content

Pereval: Piano Performance Evaluation toolkit

Integrating Contextual Embeddings into Evaluation of Expressive MIDI Piano Performances

arXiv

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).

Documentation (WIP)

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

  1. Prerequisites:
  • Python >= 3.12
  • torch (only versions >=2.3 are supported officially)
  • Aria
  1. 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 Parangonar
  • pereval-correlation - calculates attribute-scoped correlations between sets of performances
  • pereval-kde - calculates Kernel Density Estimators for attribute-scoped KL-divergence
  • pereval-embed-aria - extracts Aria embeddings
  • pereval-shift-notes - shifts (truncates the first few) notes in performances
  • pereval-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)

Source distribution for pereval 0.1.1
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)

Table of built distributions (wheels) for pereval 0.1.1
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page