Skip to content

Adding loader for Vienna 4x22 Piano Corpus - #707

Open
anusfoil wants to merge 9 commits into
mir-dataset-loaders:masterfrom
anusfoil:add-vienna4x22-loader
Open

Adding loader for Vienna 4x22 Piano Corpus#707
anusfoil wants to merge 9 commits into
mir-dataset-loaders:masterfrom
anusfoil:add-vienna4x22-loader

Conversation

@anusfoil

@anusfoil anusfoil commented Jul 8, 2026

Copy link
Copy Markdown

Summary

  • Adds a loader for the Vienna 4x22 Piano Corpus: 88 piano performances (4 pieces × 22 pianists), recorded on a Bösendorfer SE290 reproducing piano
  • Backed by partitura (optional dep mirdata[vienna4x22]) for parsing MusicXML scores, performance MIDIs, and .match score-to-performance alignment files
  • Index hosted on Zenodo: https://zenodo.org/records/21160492

Checklist

  • Loader (mirdata/datasets/vienna4x22.py) with Track, load_score, load_performance, load_match
  • Full 88-track index (vienna4x22_index_1.0.json) on Zenodo; sample index for tests
  • Test resources (1 track: Chopin op.10 no.3, pianist 01)
  • Tests (tests/datasets/test_vienna4x22.py) — all passing
  • Index generation script (scripts/make_vienna4x22_index.py)
  • pyproject.toml optional dep vienna4x22 = ["partitura>=1.7.0"]
  • CI environment (environment-ci.yml) updated with partitura
  • Docs: autodoc_mock_imports, mirdata.rst, table.rst

🤖 Generated with Claude Code

anusfoil and others added 3 commits July 8, 2026 14:32
Adds a mirdata loader for the Vienna 4x22 Piano Corpus (88 piano
performances, 4 pieces × 22 pianists) backed by partitura for
score/MIDI/alignment parsing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

@yujin-kimmm yujin-kimmm left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @anusfoil , thanks for this PR!

This dataset looks good and I left some comments. Please let me know if you have questions.

Comment thread mirdata/datasets/vienna4x22.py Outdated
Comment thread mirdata/datasets/vienna4x22.py Outdated
Comment thread docs/source/table.rst Outdated
Comment thread docs/source/table.rst
@codecov

codecov Bot commented Jul 15, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 95.00000% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 97.20%. Comparing base (11e11d5) to head (7285c50).

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #707      +/-   ##
==========================================
- Coverage   97.22%   97.20%   -0.02%     
==========================================
  Files          71       72       +1     
  Lines        7845     7905      +60     
==========================================
+ Hits         7627     7684      +57     
- Misses        218      221       +3     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

…string

- Update index URL to v2 Zenodo record (21399563) where the correct
  vienna4x22_index_1.0.json is now uploaded
- Add midi: ✅ row and update annotations description in table.rst
- Remove forward-reference to parangonar from alignment_quality docstring

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@anusfoil

anusfoil commented Jul 16, 2026

Copy link
Copy Markdown
Author

Thanks for the review @yujin-kimmm ! I've addressed all comments:

  • Fixed the Zenodo URL (wrong file was uploaded in v1; v2 now has the correct index JSON)
  • Added midi: ✅ and updated the annotations description in table.rst
  • Removed the parangonar reference from the alignment_quality docstring

@yujin-kimmm

Copy link
Copy Markdown
Collaborator

@anusfoil Thank you! I have one last question. I just found the audio files of this dataset from the link in the repo, and I was wondering if the reason why audio is not in this loader is because the audio files and the symbolic data is not related each other? or from different institution?

anusfoil and others added 2 commits July 19, 2026 16:33
- Add load_audio() returning stereo (np.ndarray, sr) via librosa
- Add audio_path attribute and audio cached property to Track
- Add 'audio' remote pointing to mdw.ac.at audio.zip (1.2 GB, CC BY 4.0)
- Update make_vienna4x22_index.py with --audio_path flag and AUDIO_FOLDERS map
- Add audio entries (path + md5) to full index and sample index
- Add test_load_audio and audio assertions in test_track
- Update table.rst: audio ❌ → 🔑

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@anusfoil

Copy link
Copy Markdown
Author

@anusfoil Thank you! I have one last question. I just found the audio files of this dataset from the link in the repo, and I was wondering if the reason why audio is not in this loader is because the audio files and the symbolic data is not related each other? or from different institution?

Thanks for the reminder Yujin! I was in symbolic for too long that I totally forgot this one has audio.... it's perfectly corresponded haha, I have just amend the PR to add it.

@yujin-kimmm

yujin-kimmm commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

@anusfoil Thanks for adding the audio! I just added a checksum for audio zip file in b93c5df, so please check it.

Other than that, looks good to me!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants