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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pereval-0.1.1.tar.gz (17.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pereval-0.1.1-py3-none-any.whl (21.7 kB view details)

Uploaded Python 3

File details

Details for the file pereval-0.1.1.tar.gz.

File metadata

  • Download URL: pereval-0.1.1.tar.gz
  • Upload date:
  • Size: 17.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.13.14 Linux/5.4.0-172-generic

File hashes

Hashes for pereval-0.1.1.tar.gz
Algorithm Hash digest
SHA256 78d19be3164c8fc536a8bfd36dcfba604e3fbecd0c8aa0e7f74dd3c6a203cb47
MD5 e868895bc9b63ad1705cc09d766960b3
BLAKE2b-256 1b9ed5a0bc4d533b5c196a5c9e071618f7cc88e82a3d486ae6a1b71dce9453cc

See more details on using hashes here.

File details

Details for the file pereval-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: pereval-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 21.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.13.14 Linux/5.4.0-172-generic

File hashes

Hashes for pereval-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 522fc582656cd1ba78a22c86e113457ed1ee95be836c1bb35d53dbc84ab38e12
MD5 e61d2b4bce490c297e1f33947776069c
BLAKE2b-256 b08696a33fddcfc9bd359e3ace8c771f3ca1da2e161176f6630c00cef6137e86

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

2 files

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