Metadata-Version: 2.4
Name: galaxymidi
Version: 26.9.31
Summary: The largest and most comprehensive MIDI dataset in the known galaxy
Author-email: Alex Lev <alexlev61@proton.me>
Maintainer-email: Alex Lev <alexlev61@proton.me>
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/asigalov61/galaxymidi
Project-URL: Report, https://github.com/asigalov61/galaxymidi/tree/main/galaxymidi/report
Project-URL: Documentation, https://github.com/asigalov61/galaxymidi/tree/main/galaxymidi/docs
Project-URL: Embeddings, https://huggingface.co/datasets/projectlosangeles/midisimx-embeddings
Project-URL: Samples, https://huggingface.co/datasets/projectlosangeles/midisimx-samples
Project-URL: Issues, https://github.com/asigalov61/galaxymidi/issues
Project-URL: Discussions, https://github.com/asigalov61/galaxymidi/discussions
Project-URL: Dataset, https://huggingface.co/datasets/projectlosangeles/Galaxy-MIDI-Dataset
Project-URL: SoundCloud, https://soundcloud.com/aleksandr-sigalov-61/
Keywords: MIDI,music,music AI,MIR,dataset,MIDi dataset,symbolic music,MIDI similarity,music similarity,cosine somilarity,MIDI search,music search,music information retrieval,music analysis,MIDI analysis,galaxy-size,sota,mega-scale,galaxy
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Education
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Multimedia :: Sound/Audio
Classifier: Topic :: Multimedia :: Sound/Audio :: MIDI
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Environment :: Console
Classifier: Natural Language :: English
Classifier: Typing :: Typed
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: midisimx
Requires-Dist: joblib
Requires-Dist: midirenderer
Dynamic: license-file

# Galaxy MIDI Dataset
## The largest and most comprehensive MIDI dataset in the known galaxy

<p>
  <img
    src="https://asigalov61.github.io/countdown/countdown.svg"
    alt="Galaxy MIDI Dataset countdown — Coming January 1, 2027"
    width="100%"
  />
</p>

***

![License](https://img.shields.io/badge/License-CC--BY--NC--SA_4.0-lightgrey)
![File Type](https://img.shields.io/badge/Format-tar.gz-orange) ![Compressed Size](https://img.shields.io/badge/Compressed-154GB-red) ![Uncompressed Size](https://img.shields.io/badge/Uncompressed-330GB-blue)
![MIDI files](https://img.shields.io/badge/MIDI_files-19.8M-green)

***

> A lifetime of music: **19,893,571 unique, standardized MIDI files with pre-computed features, midisimx embeddings, lyrics, karaoke data, and genre labels, ready for Music AI and MIR.**

***

## Contents

- [Introduction](#introduction)
- [Abstract](#abstract)
- [Overview](#overview)
- [Key features](#key-features)
- [Installation and use](#installation-and-use)
- [Documentation](#documentation)
- [Dataset structure](#dataset-structure)
- [Dataset statistics](#dataset-statistics)
- [Dataset integrity verification info](#dataset-integrity-verification-info)
- [License](#license)
- [Citations](#citations)

***

## Introduction

The **Galaxy MIDI Dataset** is the flagship symbolic music corpus from **Project Los Angeles / Tegridy Code** — the direct continuation of a line of record-setting open datasets that includes the Tegridy MIDI Dataset and the Discover MIDI Dataset (see [Citations](#citations)).

At its core are **19,893,571 unique, standardized, and original MIDI files** — but Galaxy goes far beyond raw MIDI. Every portion of the dataset is enriched with pre-computed data: comprehensive MIDI features, embeddings, file identifications, genre/artist/song labels, karaoke tracks, aligned English lyrics, curated subsets, and high-quality soundfonts for rendering.

Working with a dataset of this scale is made effortless by the companion **`galaxymidi`** Python package: downloading and extracting the entire 152GB corpus takes just a few lines of code. The embeddings portion of the dataset is powered by **`midisimx`**, which `galaxymidi` depends on and installs automatically.

The entire dataset is released under the **CC BY-NC-SA 4.0** license, making it free for non-commercial research, education, and creative use with attribution.

***

## Abstract

We present the Galaxy MIDI Dataset — to our knowledge, the largest and most comprehensive symbolic music dataset ever released. The dataset consists of 19,893,571 unique, standardized, and original MIDI files (152 GB), accompanied by rich pre-computed annotations and derived data: 19,893,571 comprehensive MIDI feature sets, 15,591,559 embeddings computed with the midisimx embedding model, 9,361,365 file identifications, 89,569 files with genre, artist, and song labels, 154,990 karaoke MIDIs, and 47,069 files with corresponding English lyrics. Curated subsets include 3,667,206 MIDIs with monophonic melodies, 1,355,292 solo melody MIDIs, and 742,915 solo drum-track MIDIs. The dataset ships with eight curated JSONL file lists for memory-efficient subsetting, four production-grade soundfonts for rendering and auditioning, and full integrity verification via MD5 and SHA256 checksums. The entire corpus is released under CC BY-NC-SA 4.0 together with a lightweight companion Python package (galaxymidi) that handles downloading and fast parallel extraction in a few lines of code. The Galaxy MIDI Dataset is designed to support music information retrieval (MIR), symbolic music generation, music understanding, representation learning, and large-scale pretraining for Music AI.

***

## Overview

The dataset is organized into a small number of self-describing top-level directories:

| Directory / file | Description | Scale |
| :--- | :--- | :--- |
| `MIDIs` | The complete corpus of unique, standardized, original MIDI files | 19,893,571 files |
| `Features` | Pre-computed comprehensive MIDI features for all MIDIs in the dataset, merged into a single container | 19,893,571 entries |
| `Embeddings` | Pre-computed midisimx embeddings for the clean MIDI subset | 15,591,559 vectors |
| `Files Lists` | Curated JSONL file lists for fast subsetting and streaming | 8 lists |
| `Identified` | MIDI file identifications | 9,361,365 entries |
| `Karaoke` | Karaoke MIDI data | 154,990 MIDIs |
| `Genres` | Genre, artist, and song labels | 89,569 MIDIs |
| `Lyrics` | Aligned English lyrics | 47,069 MIDIs |
| `SoundFonts` | High-quality SF2 soundfonts for rendering and auditioning | 4 soundfonts |
| `Artwork` | Official dataset artwork | — |
| `Code` | Bundled source code: `midisimx`, `tegridy-tools`, and license | — |
| `ATTRIBUTION.txt` | Source attribution information | — |

The curated **Files Lists** provide instant access to all major subsets without scanning the full corpus: `all`, `clean`, `aligned`, `drum_track`, `genres`, `karaoke`, `mono_melodies`, and `solo_melodies`.

**Tooling**

* [`galaxymidi`](https://pypi.org/project/galaxymidi/) — companion pip package for one-command download, fast parallel extraction, and data loading. Installable via `pip install galaxymidi`.
* [`midisimx`](https://pypi.org/project/midisimx/) — MIDI similarity and embedding model used to compute the pre-computed embeddings portion of the dataset. Installed automatically as a dependency of `galaxymidi`.

***

## Key features

* 🌌 **Galaxy scale** — 19,893,571 unique MIDI files / 152GB compressed: the largest MIDI dataset of its kind
* 🎼 **Unique, standardized, and original** — fully deduplicated and standardized corpus
* 🎛️ **19,893,571 pre-computed comprehensive MIDI features for all MIDIs in the dataset** — no extraction pipeline required
* 🧬 **15,591,559 pre-computed midisimx embeddings** — ready for similarity search, retrieval, and downstream modeling
* 🔎 **9,361,365 identified MIDIs** — matched and identified files
* 🎤 **154,990 karaoke MIDIs** and **47,069 MIDIs with aligned English lyrics**
* 🏷️ **89,569 MIDIs with genre, artist, and song labels**
* 🎹 **Rich curated subsets** — 3,667,206 mono-melody MIDIs, 1,355,292 solo melodies, 742,915 solo drum tracks
* 📋 **8 curated JSONL file lists** — instant, memory-efficient subsetting
* 🔊 **4 production-grade soundfonts** for immediate rendering and auditioning
* 🧰 **Companion pip package** — download and extract the whole dataset in two lines of code
* ✅ **Full integrity verification** — MD5 and SHA256 checksums included
* ⚖️ **Clearly licensed** — CC BY-NC-SA 4.0

***

## Installation and use

**Requirements:** Python 3.x with pip. Please note that the dataset size is **154GB** compressed and **330GB** uncompressed, so make sure you have sufficient disk space (~500GB) and a fast internet connection. A multi-core or a cloud supercomputer instance is recommended for the best experience.

**Dependencies:** Please see official [midisimx](https://github.com/asigalov61/midisimx) repo for detailed information.

### 1) Install

```sh
# Install easily with pip
pip install -U galaxymidi
```

### 2) Download

```python
# Download the dataset from Hugging Face

# Please note that the dataset size is 152GB
# so it make take a while to download
# depending on your internet speed
import galaxymidi

galaxymidi.download_dataset()
```

Alternatively, download directly with the Hugging Face CLI:

```sh
pip install -U "huggingface_hub[cli]"
huggingface-cli download projectlosangeles/Galaxy-MIDI-Dataset --repo-type dataset --local-dir Galaxy-MIDI-Dataset
```

### 3) Extract

```python
# Extract fast as follows
from galaxymidi import fast_parallel_extract

fast_parallel_extract.fast_parallel_extract()
```

### 4) Quickstart

```python
import galaxymidi

# Load one of the curated file lists
all_midis_files_list = galaxymidi.read_jsonl()
```

```python
import galaxymidi

# Load the pre-computed Galaxy embeddings (midisimx format)
embeddings = galaxymidi.load_embeddings()
```

```python
import galaxymidi

# Load the pre-computed comprehensive MIDI features
features = galaxymidi.load_features()
```

```python
import galaxymidi

# To audition the MIDIs, render them as such
output_wav_file = galaxymidi.render_midi('my_midi.mid')
```

***

## Documentation

[galaxymidi API Reference](https://github.com/asigalov61/galaxymidi/blob/main/galaxymidi/docs/API_REFERENCE.md)

[galaxymidi API Functions Index](https://github.com/asigalov61/galaxymidi/blob/main/galaxymidi/docs/API_FUNCTIONS_INDEX.md)

***

## Dataset structure

```
Galaxy MIDI Dataset
├── ATTRIBUTION.txt
├── Artwork
│   ├── Galaxy-MIDI-Dataset-Artwork (1).png
│   ├── Galaxy-MIDI-Dataset-Artwork (2).png
│   ├── Galaxy-MIDI-Dataset-Artwork (3).png
│   ├── Galaxy-MIDI-Dataset-Artwork (4).png
│   ├── Galaxy-MIDI-Dataset-Artwork (5).png
│   ├── Project-Los-Angeles.png
│   └── Tegridy-Code-2026.png
├── Code
│   ├── LICENSE
│   ├── midisimx-main.zip
│   └── tegridy-tools-main.zip
├── Embeddings
│   └── galaxy_midi_embeddings_1_2_1_2_weighted.bin
├── Features
│   └── galaxy_midi_features.ldmb
├── Files Lists
│   ├── aligned_midis_files_list.jsonl
│   ├── all_midis_files_list.jsonl
│   ├── clean_midis_files_list.jsonl
│   ├── drum_track_midis_files_list.jsonl
│   ├── genres_midis_files_list.jsonl
│   ├── karaoke_midis_files_list.jsonl
│   ├── mono_melodies_midis_files_list.jsonl
│   └── solo_melodies_midis_files_list.jsonl
├── GITHUB-REPO-LINK.txt
├── Genres
│   └── genres_data.jsonl
├── HUGGING-FACE-REPO-LINK.txt
├── Identified
│   └── identified_midis.jsonl
├── Karaoke
│   └── karaoke_midis_data.jsonl
├── LICENSE-CC-BY-NC-SA.txt
├── Lyrics
│   └── lyrics_midis.jsonl
├── MIDIs
│   └── ...
└── SoundFonts
│   ├── Expressive Flute SSO-v1.2.sf2
│   ├── KBH-Real-Choir-V2.5.sf2
│   ├── Nice-Strings-PlusOrchestra-v1.6.sf2
│   └── SGM-v2.01-YamahaGrand-Guit-Bass-v2.7.sf2
└── Technical Report
    ├── README.md
    ├── report.txt
    ├── stats_summary.json
    └── plots
        └── ...

12 root directories, 19893571 MIDI files, 32 data files
```

***

## Dataset statistics

Please see [Galaxy MIDI Dataset Technical Report](https://github.com/asigalov61/galaxymidi/tree/main/galaxymidi/report) for detailed stats and visualizations

* 19893571 unique, standardized, and original MIDI files
* 19893571 pre-computed comprehensive MIDI features for all MIDIs in the dataset
* 17292982 clean midis (melodic midis)
* 15591559 pre-computed MIDI embeddings
* 9361365 identified MIDI files
* 3667206 MIDIs with monophonic melodies
* 1355292 solo melody MIDI files
* 1227998 MIDIs aligned to bars
* 742915 solo drum track MIDI files
* 154990 Karaoke MIDI files
* 89569 MIDIs with genre, artist, and song labels
* 47069 MIDIs with corresponding English lyrics

***

## Dataset integrity verification info

#### Main archive

* File: ```Galaxy-MIDI-Dataset.tar.gz```
* SHA256: 0c43dc4ba8a2763aadb69a55d6fae617a718c1723283dacf0e8a44f11fe6cde8

---

#### MIDI Features

* File: ```galaxy_midi_features.ldmb```
* SHA256: ae68d19facb311249204bec71fe6af96af18709de01591813697380147f72894

---

* File: ```galaxy_midi_dataset_19893571_midis_features_cc_by_nc_sa.ldmb```
* SHA256: ae68d19facb311249204bec71fe6af96af18709de01591813697380147f72894

#### MIDI Embeddings

* File: ```galaxy_midi_embeddings_1_2_1_2_weighted.bin```
* SHA256: 6f816f4f4bbf749e77b1e01ab1e56e76fe441db764140f4b438f9933af5cf726

---

* File: ```galaxy_midi_dataset_15591559_clean_midis_embeddings_1_2_1_2_weighted_cc_by_nc_sa.bin```
* SHA256: 6f816f4f4bbf749e77b1e01ab1e56e76fe441db764140f4b438f9933af5cf726

---

* File: ```galaxy_midi_dataset_15591559_clean_midis_embeddings_1_2_1_2_weighted_cc_by_nc_sa.npy```
* SHA256: be721de5ef866a784e976fa5a2b0de0c20adb23c3fd6ba5623fc70e5d42129ed

***

## License

* The dataset is released under the **Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International** license (see `LICENSE-CC-BY-NC-SA.txt`). In short: you may share and adapt the dataset for **non-commercial** purposes, provided you give appropriate credit (see `ATTRIBUTION.txt` and [Citations](#citations)) and distribute derivatives under the same license.
* Bundled code in the `Code` directory is distributed under its own license terms — see `Code/LICENSE`.
* The bundled SoundFonts are subject to their respective original licenses.

***

## Citations

```bibtex
@misc{project_los_angeles_2026,
    author       = { Project Los Angeles and Tegridy Code },
    title        = { Galaxy MIDI Dataset },
    year         = 2026,
    url          = { https://huggingface.co/projectlosangeles/Galaxy-MIDI-Dataset },
    publisher    = { Hugging Face }
}
```

```bibtex
@misc{project_los_angeles_2025,
    author       = { Project Los Angeles },
    title        = { Discover-MIDI-Dataset },
    year         = 2025,
    url          = { https://huggingface.co/datasets/projectlosangeles/Discover-MIDI-Dataset },
    publisher    = { Hugging Face }
}
```

```bibtex
@misc{TegridyMIDIDataset2025,
  title        = {Tegridy MIDI Dataset: Ultimate Multi-Instrumental MIDI Dataset for MIR and Music AI purposes},
  author       = {Alex Lev},
  publisher    = {Project Los Angeles / Tegridy Code},
  year         = {2025},
  url          = {https://github.com/asigalov61/Tegridy-MIDI-Dataset}
}
```

```bibtex
@misc {breadai_2025,
    author       = { {BreadAi} },
    title        = { Sourdough-midi-dataset (Revision cd19431) },
    year         = 2025,
    url          = {\url{https://huggingface.co/datasets/BreadAi/Sourdough-midi-dataset}},
    doi          = { 10.57967/hf/4743 },
    publisher    = { Hugging Face }
}
```

```bibtex
@inproceedings{bradshawaria,
  title={Aria-MIDI: A Dataset of Piano MIDI Files for Symbolic Music Modeling},
  author={Bradshaw, Louis and Colton, Simon},
  booktitle={International Conference on Learning Representations},
  year={2025},
  url={https://openreview.net/forum?id=X5hrhgndxW}, 
}
```

***

### Project Los Angeles
### Tegridy Code 2026
