(older) MDX23C 6 stem drumsep by jarredou/Aufr33
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
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