You have a full mix and no stems, and you want to treat the sustained material and the hits differently: soften cymbal fizz without dulling a vocal, or pull a ring out of a snare without touching the stick. A stem splitter is the wrong tool when you care about behaviour, not instruments. Harmonic/percussive separation (HPSS) splits sound by whether it is sustained and pitched or short and broadband, and it needs no trained model.
This page compares the tools we could verify, by what their own pages state. We make Intrect HPSS, one of them, so we state its limits as plainly as the others’.
The short answer
Use HPSS when you need sustained versus transient material, not named instruments. Among the tools we looked at, two plug-ins do it live (Intrect HPSS on macOS; Unravel on macOS, Windows and Linux, with a tonal, transient and noise split), one plug-in carries it as a side feature (LUMINA, Windows), and the rest are scripts or libraries that you run on files. Free here has limits: Intrect HPSS needs a macOS host and an Intrect account.
HPSS is not stem separation
| HPSS | Stem separation model | |
|---|---|---|
| What it splits | Sustained, pitched material from transient, broadband material | Named parts: Demucs, for example, lists drums, bass, vocals and other |
| How | Median filtering of the spectrogram (Fitzgerald, 2010); no trained model | A trained neural network |
| What you get | Components you can rebalance or process separately | Stems; the part left in the wrong stem is bleed. See our stem bleed comparison |
| Use it when | You care about ring versus hit, or tone versus attack | You need the vocal, or the drums, as a track of its own |
Why real-time HPSS is rare
The usual implementation looks both forwards and backwards in time, which is why HPSS is normally an offline technique. A live plug-in has to make do with less context and report latency. Our guide to snare ring removal explains the idea with a spectrogram: a ring is horizontal (sustained at a pitch), a stick hit is vertical (transient and broadband).
Tools compared (as of October 20, 2026)
The table records what each page or repository states. “Not stated” means we did not find it on the page we read.
| Tool | Type | What the page says | Formats and systems | Licence and cost | Latency |
|---|---|---|---|---|---|
| Intrect HPSS | Plug-in | Separates every frame into harmonic, percussive and residual components. Three modes: Classic (soft Wiener masks), Coupled (hard threshold) and Advanced (independent thresholds with a residual output) | VST3, CLAP, AUv2; macOS 11+ (Apple Silicon and Intel); no Windows or Linux build | Free; needs an Intrect account, a download link is emailed; DSP MIT licensed; version 0.1.1 | 1536 samples; keep host delay compensation on |
| Unravel | Plug-in | Divides a signal into tonal, transient and noise layers you can rebalance; all three streams at 0 dB reconstruct the input exactly | VST3, AU, Standalone; macOS 11+, Windows 10+, Linux | Open source, GPL-3.0; version 1.6.0 dated October 2, 2026 | Not stated |
| LUMINA | Plug-in with an HPSS feature | A spectral dynamics and glitch re-synthesizer; its HPSS feature splits tonal and percussive parts with dual-axis median filtering | VST3; 64-bit Windows 10 and 11 | Open source, AGPL-3.0; release not stated | Not stated |
| FluCoMa HPSS | Toolkit object | “Harmonic-percussive source separation using median filtering”; soft masks by default (fewer artefacts, more bleed between components) or binary masks (stronger separation, more artefacts) | Not stated on the reference page | Not stated | Not stated |
| ReaCoMa (fluid-hpss) | REAPER scripts | ReaScripts that interface with the FluCoMa command-line tools, which do the DSP; includes fluid-hpss.lua | REAPER; operating systems not stated | BSD-3-Clause | Scripts call external tools; not a plug-in |
| librosa | Python library | librosa.decompose.hpss: median filtering (Fitzgerald, 2010) with a margin extension (Driedger, Müller and Disch, 2014); margin 1 by default; with a larger margin each filter must respond more than the other by at least that margin | Python | Not read | You call it from code |
Which one fits
- A live HPSS in a macOS host: Intrect HPSS, or Unravel if you want a tonal, transient and noise split.
- Windows or Linux: Unravel runs on both; LUMINA is Windows-only and HPSS is only one of its features.
- REAPER, offline: ReaCoMa’s fluid-hpss script.
- Batch work or control over the algorithm: librosa from Python.
- Named instruments: a stem separation model, not HPSS. Demucs was archived by its author on January 1, 2025 and a fork carries only important fixes.
Where Intrect HPSS is the wrong choice
- Windows or Linux: there is no build for either.
- No account: the download is free but tied to an Intrect account, and the link is sent to that account’s email.
- Named instruments: HPSS cannot give you “the vocal”.
- Hard splits: Coupled mode assigns each bin to one side. FluCoMa describes binary masks in general as giving stronger separation with more artefacts, so expect that trade-off; start in Classic mode.
- An early version: the manual lists 0.1.1.
How to test any of these fairly
- Pick a passage with a clear ring or hit and one with dense sustained material.
- Solo each component and listen for the wrong material in it: a hit smeared into the sustained part, or a sustained tail in the percussive part.
- Add the components back. Unravel states that its three streams do at 0 dB; check the others.
- Match loudness before you judge a change.
- Check latency compensation by flipping the plug-in on and off against a reference.
Try the free HPSS plug-in on macOS
Sign in with your Intrect account and a download link is emailed to you. VST3, CLAP and Audio Unit for macOS 11 or later.
Related guides
- Snare ring removal
- Suno metal artifacts: fixing fizzy cymbals and guitars
- Stem bleed removal plugins compared
- Dynamic resonance suppressor plugins compared
Sources
- Unravel, github.com/themightyzq/unravel-vst, read October 20, 2026.
- LUMINA, github.com/OTODESK4193/LUMINA, read October 20, 2026.
- FluCoMa HPSS reference, learn.flucoma.org/reference/hpss, read October 20, 2026.
- ReaCoMa, github.com/ReaCoMa/ReaCoMa, read October 20, 2026.
- librosa HPSS tutorial, librosa.org, read October 20, 2026.
- Demucs repository, github.com/facebookresearch/demucs, read October 20, 2026.
- Intrect HPSS product page and manual.
FAQ
Is HPSS the same as stem separation?
No. HPSS splits sound by behaviour, sustained and pitched versus transient and broadband, using median filtering and no trained model. A stem separation model assigns named parts such as vocals and drums. HPSS cannot give you the vocal as a track of its own.
Is there a free harmonic percussive separation plug-in?
Yes, with limits. As of October 20, 2026, Intrect HPSS is free for macOS 11 or later and needs an Intrect account. Unravel is open source (GPL-3.0) for macOS, Windows and Linux and splits tonal, transient and noise layers. LUMINA is open source for Windows and has HPSS as one of its features.
Why do hard, binary masks sound worse?
FluCoMa's reference describes binary masks as giving stronger separation with more artefacts, and soft masks as leaving fewer artefacts but more bleed between components. It is a trade-off, so start soft and move toward hard only when you need a decisive split.
Can HPSS run in real time?
Some plug-ins do it, at a cost in latency, because the usual method looks both ahead and behind in time. Intrect HPSS reports 1536 samples of latency and asks you to keep your host's plug-in delay compensation on.