MSST Bible

(older) MDX23C 6 stem drumsep by jarredou/Aufr33

Page 144 of 228 · Open the original GDoc ↗

 

Use it on already separated drums.

 

Download

Model | yaml | MK Fixed Colab | UVR

 

Added on MVSEP and uvronline too.

 

(jarredou) “Drums Separation model trained by aufr33

(on my not-that-clean drums dataset)

 

Stems:

kick, snare, toms, hh, ride, crash

MVSEP dataset evaluation:

SDR: kick: 14.55, snare: 9.79, toms: 10.64, hihat: 3.20, cymbals: 6.08, hihat & cymbals: 6.77

More metrics

 

To get potentially better results with the model “try using a small pitch shift up or down, like +/- 1 or 2 semitones, in the settings you use to extract the drum stem from the instrumental stem. (...) can sometimes help bring out the lows or highs if they seem weak.” (CZ-84)

 

Works better at debleeding than MVSep models above.

 

It can already be used, but training is not fully finished yet.

The config allows training on not so big GPUs [n_fft 2048 instead of 8096], it's open to anyone to resume/fine-tune it.

 

For now, it's struggling a bit to differentiate ride/hh/crash correctly, kick/snare/toms are more clean.

[“and has the usual issues with mdx23 models, but it’s an improvement over drumsep I think” - Dry Paint Dealer Undr]

 

 

- If you got an error while using jarredou’s Drumsep Colab (object is not subscriptable):

change to this on line 144 in inference.py:

    if type(args.device_ids) != int:

      model = nn.DataParallel(model, device_ids = args.device_ids)

(thx DJ NUO)

 

It works in UVR too. All models should be located in the following folder:

Ultimate Vocal Remover\models\MDX_Net_Models

Don't forget about copying the config file to: model_data\mdx_c_configs.

Once the model is detected, select the config in a new window, and that’s all.

 

The model achieved much better SDR on private jarredou's small evaluation dataset compared to the previous drumsep model by Inagoy which was based on a worse dataset and older Demucs 3 arch.

 

The dataset for further training is available in the drums section of Repository of stems/multitracks  - you can potentially clean it further and/or expand the dataset so the results might be better after resuming the training from checkpoint. Using the current dataset, the SDR might stall for quite some amount of epochs or even decrease, but it usually increases later, so potentially training it further to 300-500-1000 epochs might be beneficial.

Attached config also includes necessary training parameters for training further using ZFTurbo repo.

 

Current model metrics (not MVSEP evaluation dataset):

 

“Instr SDR kick: 18.4312

Instr SDR snare: 13.6083

Instr SDR toms: 13.2693

Instr SDR hh: 6.6887

Instr SDR ride: 5.3227

Instr SDR crash: 7.5152

SDR Avg: 10.8059” Aufr33

 

And if evaluation dataset hasn't changed since then, the old Drumsep SDR:

 

“kick  : 13.9216

snare :  8.2344

toms  :  5.4471

(I can't compare cymbals score as it's different stem types)” - jarredou

 

After initial jarredou’s training in Colab, Aufr33 decided to train the model for additional 7 days, to at least above epoch 113 (perhaps around 150, it wasn't said precisely), while using the same config, but on a faster GPU (rented 2x RTX 4090).

 

Even epoch 5 trained on jarredou's dataset casually in slow and troublesome free Colab (which uses Tesla T4 15GB with performance of RTX 3050, but with more VRAM) with multiple Colab accounts and very light and fast training settings, already achieved better SDR than Drumsep using smaller dataset and older architecture. Colab epochs metrics:

 

“epoch 5:

 

Instr SDR kick: 13.9763

Instr SDR snare: 8.4376

Instr SDR toms: 6.7399

Instr SDR hh: 0.7277

Instr SDR ride: 0.8014

Instr SDR crash: 4.4053

SDR Avg: 5.8480

 

epoch 15:

 

Instr SDR kick: 15.3523

Instr SDR snare: 10.8604

Instr SDR toms: 10.3834

Instr SDR hh: 4.0184

Instr SDR ride: 2.7248

Instr SDR crash: 6.1663

SDR Avg: 8.2509”

 

Don't forget to use already well separated drums (e.g. from Mel-Roformer for premium users on x-minus or MVSEP Drums ensemble) from well separated instrumental as input for that model, or jarredou’s MDX23 Colab fork v. 2.5 or also for all stems - MVSEP 4/+ ensemble (premium).

Purely for drums separation from even instrumentals, the model might not give good results, hence it needs separated drums first. It was trained just on percussion sounds and not vocals or anything else.

 

Also, e.g. the kick and toms might have a bit weird looking spectrograms. It’s due to:

“mdx23c subbands splitting + unfinished training, these artifacts are [normally] reduced/removed along [further] training.” Examples