This repository contains code and listening examples for our paper "Adapting offline models to a streaming context for music source separation", submitted at ICASSP 2027.
You will need uv and ffmpeg available on your system. A GPU is strongly recommended, as sweeping all lookaheads at inference time is quite slow.
You will need to download the official model weights for SCNet (a checkpoint.th file) and DTTNet (4 .ckpt files, password is lgwe).
You will also need to have MUSB18-HQ available.
To rerun inference at different lookaheads, run:
uv run scripts/run_museval.py --model demucs --musdb <path_to_musdb18hq_root>(demucs)uv run scripts/run_museval.py --model dttnet --dtt-weights <path_to_dttnet_weights_dir> --musdb <path_to_musdb18hq_root>(dttnet)uv run scripts/run_museval.py --model scnet --scnet-ckpt <path_to_scnet/checkpoint.th> --musdb <path_to_musdb18hq_root>(scnet)
You can then aggregate results into a single json with:
uv run scripts/aggregate.py
Finally, you can reproduce our plots using:
uv run scripts/plot_latency_sdr.py(Fig. 3)uv run scripts/plot_lookahead_gain.py(Fig. 4)
Uncompressed audio samples are available in static/.
You can also find them online here.