Music Source Restoration (MSR) seeks to recover original, unprocessed instrument stems from mixed, mastered, and possibly degraded recordings. Unlike conventional source separation, which treats the mixture as a linear sum of clean sources, MSR must additionally invert nonlinear production effects, such as equalization and compression, and transmission-related degradations, such as codec artifacts. We propose a three-stage framework built around this distinction: (1) a mixture restoration model that addresses degradation before separation, (2) a single model that separates the restored mixture into eight target stems (vocals, guitars, keyboards, synthesizers, bass, drums, percussion, and orchestra), and (3) stem-specific restoration experts fine-tuned on the separator's own residual artifacts. Each stage improves restoration quality over the previous one on the MSR Challenge test set. We release code and models to support future research in MSR at https://github.com/theMoro/music_source_restoration.
Figures & tables
Figure 1: Proposed 3-stage Music Source Restoration pipeline.
Config.
MMSNR ↑
Zimt ↓
FAD ↓
Stage 2
3.980
0.015
0.300
Stages 1+2
4.047
0.014
0.293
Table 1: Effect of mixture restoration (Stage 1) on separation performance (Stage 2).
MMSNR ↑
ZIMT ↓
FAD ↓
Source
1+2
1+2+3
1+2
1+2+3
1+2
1+2+3
bass
6.956
6.430
0.010
0.010
0.391
0.339
drums
5.604
5.550
0.015
0.014
0.399
0.368
vocals
1.486
1.535
0.017
0.017
0.295
0.306
guitars
3.045
3.070
0.013
0.013
0.226
0.222
keyboards
6.660
6.618
0.011
0.010
0.325
0.339
Table 2: Per-source effect of adding stem restoration (Stage 3) on top of mixture restoration and separation (Stages 1+2).
MMSNR ↑
ZIMT ↓
FAD ↓
Source
BL
xlance
Ours
BL
xlance
Ours
BL
xlance
Ours
bass
2.109
8.145
6.956
0.014
0.009
0.010
0.641
0.307
0.391
drums
2.193
5.806
5.604
0.020
0.014
0.015
0.568
0.314
0.399
vocals
1.057
1.596
1.535
0.019
0.016
0.017
0.349
0.266
0.306
guitars
0.994
3.726
3.070
0.017
0.011
0.013
0.370
0.191
0.222
keyboards
1.693
6.882
6.660
0.017
0.012
0.011
0.698
0.317
0.325
Table 3: Per-source comparison of our final system against the BSRNN baseline [ 15 ] and the xlancelab pipeline [ 17 ] .