{"id":13861484,"url":"https://github.com/bytedance/GiantMIDI-Piano","last_synced_at":"2025-07-14T09:32:13.047Z","repository":{"id":42023887,"uuid":"296001097","full_name":"bytedance/GiantMIDI-Piano","owner":"bytedance","description":null,"archived":true,"fork":false,"pushed_at":"2022-04-17T19:47:19.000Z","size":23124,"stargazers_count":1766,"open_issues_count":11,"forks_count":186,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-04-14T05:56:23.345Z","etag":null,"topics":["research"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bytedance.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-09-16T10:34:17.000Z","updated_at":"2025-04-13T12:02:22.000Z","dependencies_parsed_at":"2022-08-12T02:40:28.453Z","dependency_job_id":null,"html_url":"https://github.com/bytedance/GiantMIDI-Piano","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bytedance/GiantMIDI-Piano","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytedance%2FGiantMIDI-Piano","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytedance%2FGiantMIDI-Piano/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytedance%2FGiantMIDI-Piano/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytedance%2FGiantMIDI-Piano/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bytedance","download_url":"https://codeload.github.com/bytedance/GiantMIDI-Piano/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytedance%2FGiantMIDI-Piano/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265269351,"owners_count":23737825,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["research"],"created_at":"2024-08-05T06:01:23.500Z","updated_at":"2025-07-14T09:32:07.999Z","avatar_url":"https://github.com/bytedance.png","language":"Python","funding_links":[],"categories":["Python","License","Datasets"],"sub_categories":["Music"],"readme":"# GiantMIDI-Piano\n\nGiantMIDI-Piano [1] is a classical piano MIDI dataset contains 10,855 MIDI files of 2,786 composers. The curated subset by constraining composer surnames contains 7,236 MIDI files of 1,787 composers. GiantMIDI-Piano are transcribed from live recordings with a high-resolution piano transcription system [2].\n\nHere is the demo of GiantMIDI-Piano: https://www.youtube.com/watch?v=5U-WL0QvKCg\n\nTranscribed MIDI files of GiantMIDI-Piano can be viewed at [midis_preview](midis_preview) directory.\n\n## Download GiantMIDI-Piano\n\n## Method 1 (suggested)\n\nFollow [disclaimer.md](disclaimer.md) to agree a disclaimer and download a stable version of GiantMIDI-Piano (193 MB).\n\n## Method 2\n\nUsers can acquire GiantMIDI-Piano by downloading all audio recordings, and transcribing them into MIDI files following the rest part of this repo. The transcription takes ~200 hours on a single GPU card.\n\n### Install requirements\nInstall PyTorch (\u003e=1.4) following https://pytorch.org/.\n\nThe above links also include a curated subset. The curated subset constrains the YouTube titles should contain composers surnames.\n\n```\npip install -r requirements.txt\n```\n\n### Download audio recordings\nDownload audio recordings from YouTube using the following scripts. Approximately 10,855 audio recordings can be downloaded. There can be audios no longer downloadable.\n\n```\nWORKSPACE=\"./workspace\"\nmkdir -p $WORKSPACE\ncp \"resources/full_music_pieces_youtube_similarity_pianosoloprob.csv\" $WORKSPACE/\"full_music_pieces_youtube_similarity_pianosoloprob.csv\"\n\n# Download all mp3s. Users could split the downloading into parts to speed up the downloading. E.g.,\npython3 dataset.py download_youtube_piano_solo --workspace=$WORKSPACE --begin_index=0 --end_index=30000\npython3 dataset.py download_youtube_piano_solo --workspace=$WORKSPACE --begin_index=30000 --end_index=60000\npython3 dataset.py download_youtube_piano_solo --workspace=$WORKSPACE --begin_index=60000 --end_index=90000\npython3 dataset.py download_youtube_piano_solo --workspace=$WORKSPACE --begin_index=90000 --end_index=120000\npython3 dataset.py download_youtube_piano_solo --workspace=$WORKSPACE --begin_index=12000 --end_index=150000\n```\n\nThe downloaded mp3 files look like:\n\n\u003cpre\u003e\nmp3s_piano_solo (10,855 files)\n├── Aaron, Michael, Piano Course, V8WvKK-1b2c.mp3\n├── Aarons, Alfred E., Brother Bill, Giet2Krl6Ww.mp3\n└── ...\n\u003c/pre\u003e\n\n### Transcribe audios to MIDI files\n\n```\n# Transcribe all mp3s to midi files. Users could split the transcription into parts to speed up the transcription. E.g.,\npython3 audios_to_midis.py transcribe_piano --workspace=$WORKSPACE --mp3s_dir=$WORKSPACE\"/mp3s_piano_solo\" --midis_dir=$WORKSPACE\"/midis\" --begin_ind=0 --end_index=30000\npython3 audios_to_midis.py transcribe_piano --workspace=$WORKSPACE --mp3s_dir=$WORKSPACE\"/mp3s_piano_solo\" --midis_dir=$WORKSPACE\"/midis\" --begin_ind=30000 --end_index=60000\npython3 audios_to_midis.py transcribe_piano --workspace=$WORKSPACE --mp3s_dir=$WORKSPACE\"/mp3s_piano_solo\" --midis_dir=$WORKSPACE\"/midis\" --begin_ind=60000 --end_index=90000\npython3 audios_to_midis.py transcribe_piano --workspace=$WORKSPACE --mp3s_dir=$WORKSPACE\"/mp3s_piano_solo\" --midis_dir=$WORKSPACE\"/midis\" --begin_ind=90000 --end_index=120000\npython3 audios_to_midis.py transcribe_piano --workspace=$WORKSPACE --mp3s_dir=$WORKSPACE\"/mp3s_piano_solo\" --midis_dir=$WORKSPACE\"/midis\" --begin_ind=120000 --end_index=150000\n```\n\nThe transcribed MIDI files look like:\n\n\u003cpre\u003e\nmidis (10,855 files)\n├── Aaron, Michael, Piano Course, V8WvKK-1b2c.mid\n├── Abel, Frederic, Lola Polka, SLNJF0uiqRw.mid\n└── ...\n\u003c/pre\u003e\n\nThe transcription of all audio recordings may take around 10 days on a single GPU card.\n\nDetails of scripts can be viewed at [scripts](scripts)\n\n## Analyses the statistics of GiantMIDI-Piano\n\nAll statistics and figures in [1] can be reproduced by:\n\n```bash\n./scripts/3_statistics.sh\n```\n\n## FAQ\nIf users met \"Too many requests! Sleep for 3600 s\" when downloading, it means that YouTube has limited the number of videos for downloading. Users could either 1) Wait until YouTube unblock your IP (1 days or a few weeks), or 2) try to use another machine with a different IP for downloading.\n\n## Contact\nQiuqiang Kong, qiuqiangkong@gmail.com\n\n## Cite\n[1] Qiuqiang Kong, Bochen Li, Jitong Chen, and Yuxuan Wang. \"GiantMIDI-Piano: A large-scale MIDI dataset for classical piano music.\" arXiv preprint arXiv:2010.07061 (2020). [https://arxiv.org/pdf/2010.07061](https://arxiv.org/pdf/2010.07061)\n\n## License\nCC BY 4.0","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytedance%2FGiantMIDI-Piano","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbytedance%2FGiantMIDI-Piano","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytedance%2FGiantMIDI-Piano/lists"}