File size: 1,760 Bytes
93d3331 5ae1f8f 93d3331 5ae1f8f 93d3331 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | ---
library_name: NoteSep
tags:
- audio-separation
- music
- source-separation
---
# NoteSep
NoteSep separates a music recording into individual note waveforms using an aligned score. The score tells the model which pitches to look for and when; the output gives you audio tracks you can listen to, edit, and mix again.
[Paper](https://arxiv.org/abs/2609.29071) · [Code](https://github.com/ben2002chou/notesep) · [Listen to examples](https://benschou.com/notesep/)
The model has two parts: NoteGrab estimates each note, then Adaptive Set Ownership (ASO) handles energy shared by overlapping estimates. This is the checkpoint pair used for the paper's Table 1, which reports **7.39 dB median SI-SDR** on SCNS-Eval.
## Use the model
Give NoteSep a recording and an aligned MIDI or JSON score. You can correct the score in the piano-roll editor before separating the notes.
```sh
git clone https://github.com/ben2002chou/notesep.git
cd notesep
python -m venv .venv
. .venv/bin/activate
python -m pip install -e ".[studio]"
notesep download
notesep verify
notesep separate excerpt.wav --score corrected.mid --output separated
notesep render separated/project.json --output edited.wav
```
`notesep download` retrieves and verifies the `separator.pt` and `aso.pt` files in this repository. You can also run `notesep studio` to upload audio, correct a score in the piano roll, separate notes, and edit them in your browser. The CLI and Studio work on 1.1–12 second passages; use the window options to choose a passage from a longer recording.
The output includes a 16 kHz WAV for each note, their direct sum, and an editable project. The [GitHub README](https://github.com/ben2002chou/notesep#readme) has a Python example and explains the output files.
|