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.