Similarity/Phantom Center/Mid channel Extractor
“It extracts the phantom centre. I.e. what you hear as being in front of you in stereo audio” “Very useful for older mixes. Like 60s songs with hard panning”.
“It exports what feels like it is in the center, so all the effects like reverb, delay, wide synths, panned drums all go to the wide stem”
Current models are better than what EQs and some phantom center plugins allow (metrics of the Bertom plugin (jarredou), which is claimed to have decorrelated sides - Sam Hocking).
As for gilliaan’s models: “All of them sound way more natural than the algorithms we have, and are now my go to for anything regarding center and similarity extraction.”
“Audacity [or Ableton] can't do the job, it sounds more full but it's definitely not precise, it's not isolating the true center from a mathematical perspective. (...) No DSP algorithm can truly isolate the center” - gilliaan
You would think: "Oh, If I extract the center channel, then the model has less audio to dig through, and the desired stem (vocals or bass or whatever) is overlapping with less useless audio and therefore is more audible, cleaner sounding. Therefore separation will be better, YAY!"
But this stopped being the case for well over 2 years now” and since the release of modern models like BS-Roformers, BS-Roformer SW, or fine-tuned Demucs bass model on MVSep - Vinctekan
Other working use cases described later below under the old models section by Vinctekan.
Metrics of various models by gilliaan | MVSep laderboard
(evaluation for phantom center models was later added on MVSep)
Most important for that kind of model are two metrics “bleedless and aura_mrstft,
Why is bleedless the most important?
If the side bleeds into the mid, that's a task failure. This is the primary quality indicator.
aura_mrstft is more perceptually relevant than SDR for musical content imo, so that one too” - gilliaan
The list
(sorted mostly by the best)
- centerwide_v3 Mel-Roformer duality model by gilliaan | yaml | metrics | Colab.
It sounds better than the older MDX23C model below, despite worse SDR which:
“can actually generate frequencies, which is why it scores such a high SDR. But those frequencies don't necessarily reflect the original source material” and it had phasing issues - gilliaan. More.
- CenterWide MDX23c dual fullness a.k.a. v2e model by gilliaan | config | MK Colab fork #2 |
Metrics (the biggest center SDR) | “Trained using 2x more data over v1.
The best overall, best SDR... best fullness (across SOTAs, not scripts),
sounds like it's actually catching center/wide with more precision. It's also less noisy.
Even better SDR with this config on: batch_size: 16 - overlap: 16 - use_tta: true” - metrics
Q: “It leaves some pretty wicked noise with one of my test files”
A: “the model was only trained on lossless material (you lose a lot of stereo infos when you compress it to mp3, sometimes the stereo can even become mono...)”
Q: “You filtered the song with my model, then put back both outputs and inverted it to the original?”
A: “it's a dual model, meaning there's always going to be some leftover when you do this, both the outputs together don't equal the input (...) if you really don't want this artefact, u can still use v1 which is not a dual model” - gilliaan
- Ensemble Avg/Avg of SCNet V2 by gilliaan + gilliaan_mdx23c_centerwide_v2e
SDR center: 19.38, wide: 19.68, full metrics
“I find it really good in an ensemble (...) it adds back some fullness and sounds better”
Out of the four currently evaluated ensembles - it currently holds the highest center SDR (click).
- CenterWide MDX23c V3beta model (yaml) by gilliaan | Colab by Squid
“The model sounds like shit that's why i did not make an announcement, melband's v3 is still the best.
The only advantage of this model is that it's completely noiseless, since I only used a single subband, but the sound is clearly too muddy and it's also hallucinating frequencies, just like all my other MDX23C models” - gilliaan
- (old) MDX23c Phantom Center model by gilliaan | yaml | MK fixed Colab | mvsepless Colab | HF | MVSEP
This single model below actually turned out to be better than the ensemble suggested earlier below. Recommended settings:
Overlap 16 with batch_size 16 and TTA
“It sounds extremely good” - gilliaan. Metrics.
UVR doesn't support batch_size and TTA, only MSST.
“You can run this with a 6GB [NVIDIA] VRAM card. I processed the 27 mins test set on a 6GB card using these parameters, only took me 10 mins (...) most models i released were mostly trained on white noise (...) smaller chunk sizes for centerwide models also helps a lot because it doesn't need a big context, it just needs to understand a very simple math task, it's not about audio (...) l’ve tried with bigger chunk_size and it peaked at SDR 16, while this one with smaller [one] peaked at 19.” - gilliaan. So the value in the model’s config was tested to be good enough.
- Ensemble (Avg) of gilliaan’s BSv1 + SCNet Dual XL + MDX23C models “together, and there are literally zero artifacts. Invert both stems against each other and there's no muddiness whatsoever. Separation is at least 98% in my book, that's as close to perfect as I've heard from any of these.
Use the ensemble and only the ensemble [Metrics | examples]. (...)
“Every single model has its own artifact. But when you throw all three together they cancel each other out completely. Zero artifacts. None.
(...) Side note: this will probably be one of the best pre-processing tools for vocal extraction too.” - gilliaan
For all of the models to appear in the Ensemble menu in UVR, you need to edit targets in the yaml to vocals/other.
- (old) Ensemble (Avg) of BSv1 + SCNet Center wide by gilliaan (metrics)
"I like doing that because when you average those 2 it removes bias from both" - dynamic64
"they both have different types of artefacting, averaging them gets you even closer to the "real" thing" - gilliaan
- (old) Ensemble Mel Beta V2 + BSv1 (Avg)
- SCNet CenterWide v2 by gilliaan model | config (gilliaan_scnet_centerwide_v2) | Colab
SDR center: 18.17, wide: 18.05, full metrics.
“Better SDR over the previous one, worse SDR than the MDX23C v2e (...)
I think I've really pushed the models to the very limits of their capabilities; there's nothing else left to try. I hope you’ll like the models!
it's not a farewell, it's just a goodbye for now!”
- (old) SCNet XL IHF CenterWide Phantom Extraction Dual model by gilliaan
(Model | yaml | Metrics | Leaderboard | MK Colab)
“Sounds fuller, but also less precise than the BS Roformer version, also scores higher SDR than the BS version.
I recommend using overlap 16 because SCNet is quite noisy.” - gilliaan
In order to make this model work in UVR, you need to set target instruments to null in the yaml (ready yamls | mirror)
“while addresses the inconsistencies between the 2 previous models [BS and Mel], it's consistency does not make neither of the 2 models completely obsolete yet. While I'm still in the early stages of testing with this model, I have already encountered one instance where the Mel-Band still preserves the center a little better. Despite that, this is still now my go to model that I will be pointing people towards when asking about Center Channel Extraciton.” - Vinctekan
gilliaan: “Phantom center single stem extractor trained on a custom synthetic dataset of 2000+ 4 mins songs. This model is trained to isolate only the correlated center content, so hard-panned signals stay in the wide output and don't leak into the center. This model was trained on center and wide, dual model. And is a fullness model.”
- BS-Roformer Phantom Center extraction model v1 | yaml by gilliaan (single stem) | MK Colab | MVSEP
In order to make this model work in UVR, you need to delete the whole: mlp_expansion_facfor, skip_connection, use_torch_checkpoint lines from the yaml (here are ready modified configs)
"This model was only trained on center. (...)
it's a lot better than the 2 previous Melband Roformers I've released. BS Roformer understood the task better. The residual stem (wide) sounds good as well, even though it's more on the bleedless side. For reference, we went from 10.2 SDR up to 16.9 SDR. This is a big jump. (...) trained on a custom synthetic dataset of 2000+ 4 mins songs. this model is trained to isolate only the correlated center content, so hard-panned signals stay in the wide output and don't leak into the center” - gilliaan
Despite much higher SDR than the Mel below “the model generally was so aggressive in removing the stereo signal from the center, that is started taking away from the center channel itself, to the point that on multiple occasions, the center channel would just become COMPLETELY SILENT OUT OF NOWHERE (one example of this is the bass guitar in the center channel for Metallica - The Call of Ktulu). This was shocking, and it made me switch back to the Mel-Band model on quite a few songs. Despite that, this still became my first choice for center extraction when it came out” - Vinctekan
- Mel-Roformer dual phantom center model by gilliaan MonoStereo_Dual_Beta2 | yaml | MK Colab
It has better metrics than the beta 1. More info.
"Isolates the sides better than every other center extraction model I've tried" - pezz23
"the model is not good concerning the center stem" - gilliaan
"Isolates the sides better than every other center extraction model I've tried" - pezz23
“It's f**** amazing” - knock2one
“While it may not have been the most aggressive at separating side channel audio from the center channel, it was really good at preserving the center channel without it bleeding into the side stem. Despite the low metric's, that is what made it special for me, and why I still do at least 1 run on every new audio.” - Vinctekan
Usage description in beta1 section later below.
Not sure if it's beta 2 or 1 at this point. the new gilliaan repo has completely different hash for both v1 and v2 MBR models, but both are 870MB.
Judging by config changes, it’s also a duality model, but with changes to only stem names (mid instead of center and wide instead of side).
Both v1 and v2 derived from the same old Mel-Band-Roformer-MonoStereo-Duality gilliaan repo folder. There weren’t more Mel models than v1 and v2, and also besides duality, so maybe the linked one was just reprocessed lightly for some reasons to just work with mvsepless better like the modified config. I assume it’s v2, but if you want the current Mel Beta 2 in the new repo, it’s here (yaml).
- gilliaan BS-Roformer model v2 | yaml Phantom Center extraction (single stem) | MK Colab
You might try out using MSST instead of UVR. We had at least one report with this model that UVR gave more bleeding despite using the same settings.
____
Older models
(should be outperformed by the above)
- (old) gilliaan_MonoStereo_Dual_Beta1 Mel-Roformer model | yaml
It has much higher SDR and aura_mrstft than the 71.99 below, with a bit lower bleedless.
“Phantom center dual extractor (...) trained to isolate only the correlated center content, so hard-panned signals stay in the side output and don't leak into the center. (...) [And for]
Hard-panned correlated signal: The same signal in mid and in side, but the side version is hard-panned 100% to one channel (L or R). This represents mono recordings doubled to one side. very common in 60s music and some modern productions with somewhat panned frequencies.
When mid.flac and side.flac contain the same signal but the side version is hard-panned to one channel only, the model outputs mid fullness of ~97 (everything dumped into mid) and side SDR near 0. It treats the correlation as a signal to route everything to center, ignoring the spatial asymmetry entirely. (...).
Bleedless/Fullness are on the same level.
On my validation set it scores higher SDR than what's currently out there.
Training insights
“SCNet v1 was a finetune of SCNet XL IHF, mdx23c v1 was also a finetune, turns out fine-tuning ain't really working out for the task, I do like to train from scratch because I have a 5000 tracks dataset, and I don't want the model to inherit something bad from the original model in fine-tuning, ofc it takes a bit more time but it definitely gives better metrics” - gilliaan
Vinctekan write-up about phantom center (full):
My proposed solution:
“Mix and match between the 3 models [BS/Mel/SCNet] to maximize the center/wide stem to your liking. This will require either ensembling the 3 outputs, or even better: editing and mixing the best results by hand in order to create your own Center or Wide SUPERSTEM. (...)
Here are my observations:
- The quality of separation for the center audio, depends a lot on the general VOLUME of the center audio.
- If it's loud in the mix, it works marvelously.
- However, the quieter it gets, the separation quality drops with it. This has always been the general pattern with audio separation models of any kind: If it's loud, the separation quality is high, if it's quiet, the quality is low. These center extraction models, are no different.”
More use cases for these models:
“- Similarity extraction
- Similarity between channels from a Dolby Atmos/Surround release of a song/album (example: Metallica - 72 Seasons, Black Album)
- Similarity between a remaster/remix/re-recording of a song/album and it's original version (example: Meshuggah - Nothing album)
- If there is a copy and pasted stem inside a song, whether it's in a verse/chorus. If the 2 instances of the duplicated parts are lined up, 1st instance on the left, 2nd instance on the right. Then it makes for very good similarity extraction, and it handles even quiet similarity way better than traditional center channel extraction somehow. While it's not immune to the "quiet = poor quality" problem, it handles it objectively better. (example: Dragonforce, these guys would've definitely stopped being a band after Sonic Firestorm if copy+paste didn't exist in a DAW)” - Vinctekan
- 2048 MDX23C models by wesleyr36/drypaintdealerundr | info
The 71.99 model variant has currently the biggest measured bleedless metric.
Can be used on MVSEP (in Experimental section) and x-minus.pro (option Extract backing vocals) or using ZFTurbo inference CML code (it doesn’t work in the OG MDX23C inference code and in UVR).
“This model is similar to the Center Channel Extractor effect in Adobe Audition or Center Extract in iZotope RX [and Audacity/Bertom], but works better.
Although it does not isolate vocals, it can be useful.” Aufr33
“The main thing I trained it for was to be used in a similarity extractor, since the original also used an AI model
The steps for that being:
1. Take the L channel from Audio_1 and the L channel from Audio_2 and merge them into a stereo file.
2. Run that through the model
3. Repeat for R channels
4. Merge the L and R channels back together, and you have the similarity, assuming the audio files were perfectly aligned.”
It was trained in a period of 6 days on Quadro RTX 4000
“Some bits were better on the model, others on [the] Audacity's [Vocal and Center Isolation feature]”
- Dry Paint Dealer Undr (a.k.a. wesleyr36)
HTDemucs Similarity/Phantom Centre Extraction model:
GDrive / HF (mirror) / Colab (it tends to be more “correct” in center extraction than the MDX23C model below)
That Demucs model won’t work with UVR giving bag_num error even with the yaml prepared in the same way as for Inagoy Drumsep and after renaming ckpt to th (it’s probably because it needs ZFTurbo inference code it was trained with).
- SCNet Similarity/Phantom Centre Extraction model by Dry Paint Dealer Undr
https://drive.google.com/drive/folders/1CM0uKDf60vhYyYOCg2G1Ft4aAiK1sLwZ?usp=sharing
"one thing with SCNet.
If you process the song twice, once with the phase inverted, re-invert the phase and then mix together you will cancel most of the noise" - dry paint dealer
“overlap >2 also helps improve the buzzing noise, but vocal residues not so much" - becruily
- Melband Roformer Similarity/Phantom Centre Extraction models (beta) + LoRA
by wesleyr36/drypaintdealerundr
“results are relatively clean but sound a bit filtered at times, comes with 2 LoRA checkpoints for frazer's LoRA repo”
- SCNet difference/sides models by Dry Paint Dealer Undr DL
- Two BS-Roformer Phantom Center/Similarity extraction models by drypaintdealerundr - previously unreleased from some training sessions from September or October 2025. DL
a) 12.95 ep52 “deg_tweaks”
b) 14.33 ep25
VR6 models don’t work in UVR:
- iter41_l1_loss model for VR v6.0.0b4 - similarity/phantom centre extractor by wesleyr36/drypaintdealerundr,
“I think this arch makes for a much better similarity extractor
(make sure to use the complex flag when running this model --complex or -X)”
Compared to MDX23C models below, VR6 ones were trained on a limited dataset, but they can still perform better.
- 4096 model for VR v6.0.0b4 by wesleyr36/drypaintdealerundr (it should perform better than the MDX23C 2048 model below)
“must be run not only with -X or --complex but also --n_fft 4096 --hop_length 2048 or -f 4096 -H 2048”
VS 2048 - “pros: less bleed
cons: less complete results as a similarity extractor
it seems to benefit from running the centre channel results back through the model for more complete results just like the original similarity extractor for more complete results although with the trade-off of more bleed
you end up with overall more bleed than the other model but with even more complete results”
Usage for VR v6.0.0b4:
python inference.py -i path/to/an/audio/file --gpu 0 -P path/to/model.pth -X -f 4096 -H 2048 -o folder/you/wish/to/save/to
you can just drag a file/folder into the terminal/CMD to get the path too if that's more convenient
The command for Nvidia GPU, but CPU inferencing should be possible too.
- Mel-Roformer de-reverb by anvuew (a.k.a. v2/19.1729 SDR) | DL | config | Colab
(it can serve also as a phantom center model, removing sides)
- Older VR model by HV Colab (Colab fixed 16.02.24)
https://colab.research.google.com/drive/1WP5IjduTcc-RRsvfaFFIhnZadRhw-8ig?usp=sharing
Don’t forget to click cell with dependencies after mounting
If you want to use the repo locally, use just this fix
"If you have two language track it'll remove the vocals, but not its adlibs"
"It works like invert but instead of mixing the inverts together, it removes the difference and leaves the ones that sound the same"
It uses a specifically trained model on 100 pairs.
- Sadly, “It's like a downgrade of Audacity Vocal and Center Isolation feature” - it’s muddier
Audacity can be used in browser at:
The option in version prior 3.5.0 is located in:
Effect>Special>Vocal Reduction and isolation
on 2.x: Effect>Vocal Reduction and isolation (at the very bottom)
3.5.0 or later: downloadable as Nyquist plugin from here
“Adobe Audition works similarly, but you can actually tweak a lot of settings. But the difference is pretty much non-existent. Or any better for that matter. Similar way. Even with Audacity, Adobe Audition, and PEEL [3d Audio Visualize], we are still not quite there yet.
Currently, Audacity, and maybe Waves Stereo Center plugin have the best capabilities, but they still aren't perfect.” Vinctekan
Sadly, it turns out that all the three solutions can sound worse than current models for the use case of getting rid of dubbing in movies.
It can be used with window size 768 on CPU as well. Probably the lowest supported for GPU is 272 (352 was set, and 320 is possible too), but probably it won't change here much.
One of the use cases of Audacity method to get lead vocals (in 2021) was by obtaining e.g. main vocals from vocal or BVE model, and processing that stem with these settings:
Audacity>Effect>Vocal reduction and isolation>
on action, make it Isolate Center
Strength: 1.1 or 1.6
Then click OK. That effect must go on the vocal part. If you use center isolation, low/high cut will be ignored
“Q: wouldn’t it be possible to extract anything that is panned to a specific point yk like extract anything that is panned 100% exactly, or anything that is panned 80% or 50% etc, would that not be possible?
A: Mashtactic does that since almost 20 years now (coupled with dynamics and EQ filtering)
https://www.youtube.com/watch?v=0lDAY0va4VE
- zplane has released a clone recently, but it doesn't have the transient/sustain filtering iirc” (isling/jarredou)
- Also, you can use: AudioSourceRE RePAN for center extraction as well (IntroC)
- Or less complex donationware: Bertom Phantom Center (sometimes it’s better, sometimes worse than the Dry's MDX23C model). Metrics
“claims to not use basic mid/side processing to extract the center so probably uses decorrelation on the sides instead of mid/side processing which by its nature negatively correlates them. The net result of Bertom is the sides are decorrelated from the center and so are maintained more strongly in the stereo field.” - Sam Hocking
“I've used it in mixes to help carve out some low-end centre channel space” -drypaintdealerundr
- AOM Stereo Imager D “turn off auto-gain & turn down center”
- Reaper guide
- TrueMidSide plugin by Raising Jake Studios
- Leapwing CenterOne - worse center SDR than Bertom; “full sounding but in other ways [than models]” - gilliaan; might be feasible for mastering - Rongo
Fender Studio Pro Phantom Center - “it's like a hidden feature. You can to go to the add inserts section, add a splitter and have it be a 3 channel sides splitter, this will separate left right and center” - straturkoise
Hints on using similarity models
Q: “Hi there! I have a question regarding audio separation in movies. I have an old movie with a stereo track in English, and a mono (!) track in French. I couldn't for the life of me find anything better than mono for my native language, which is a shame (even a source with supposedly stereo French is actually mono, you hear it right away).
So I'm willing to try and use the English track to reinject some stereo in the background, to widen the music and sfx at least (the voices being centered don't bother me). i.e. I could separate the voices from the rest in both languages, then mix the French voices with the English sfx and music. Whatever artifacts remaining could blend enough that it wouldn't be noticeable... Maybe...
How would you guys go about it? I've used UVR in the past but only on music, not movies – and it was months ago. Also my GPU is old (Nvidia GTX 970 with 4 GB VRAM) so this might be a limitation. Thanks for any advice you can give me!”
A: “If the French rip is a downmix between stereo channels, then you don't have to separate dialogue in the French rip. Only separate the vocals in the English version, encode it to mid/side, replace the mid channel with the French rip, decode back to stereo, and you're done. English vocal separation will get rid of the stereo bits from the side channel, so you won't be hearing both languages at once. Obv you have to align the sources too, which can be tricky if there are any changes in timing between the versions. If the French rip is only a single channel from stereo source, then do your way of isolating both languages.
Instead of using your own GPU you can send your audio file to Colab and use smth like Mel-Roformer v1e with default settings.” (introC)
Q: What difference do you mean with "a downmix between stereo channels" and "a single channel from source stereo"? It seems the same thing to me but I may be missing sth obvious.
A: A single channel is either left or right, downmix is an average of left and right
Q: Then I guess what I have is a downmix?
A: Not sure, you need to check. I can check if you want, sent the English and mono audio. But basically, align the tracks, downmix the English track and check for null when mixing with the French mono track. If it isn't null, then it's not a downmix (or the audio tracks have other differences)
_____
OG VR broken Colab by HV fixing history
It was fixed by adding these lines to it:
!apt-get install python3.8
!apt-get install python3.8-distutils
!apt-get install python3.8 pip
!python3.8 -m pip install librosa==0.9.1
!python3.8 -m pip install numpy==1.19.5
!python3.8 -m pip install numba==0.55.0
!python3.8 -m pip install tqdm
!python3.8 -m pip install torch==1.13.1
and renamed inference Colab line to python3.8
(not necessary)
! pip install soundfile=0.11.0
distutils was necessary to fix numpy wheel error, but regular 3.8 installed before was necessary for Colab to recognize !python3.8 commands. Because 3.8 was bare, it needed pip installed separately for this 3.8 installation. Then the rest of the necessary packages are installed for 3.8 - the old librosa fix, numpy for 3.8, and broken dependencies numba and tqdm. Then, the last torch working in HV Colabs was 1.13.1, 1.4 didn't work though it's compatible with 3.8. Maybe CUDA or generally upgraded Ubuntu problem. Can't tell. It was necessary anyway because Torch wasn't installed for 3.8.
Additionally, to fix the regular VR Colab, this line was necessary:
!python3.8 -m pip install opencv-python
And for some reason, I needed to install these with normal pip like below, and with python 3.8, so basically twice, otherwise it gave module not found
! pip install pathvalidate
! pip install yt_dlp
That all hassle with Python 3.8 is necessary because numpy on Colab got newer version, and newer ones no longer supports function used in HV Colabs, as they got deprecated.