Harmonic Percussive Separation Tools Compared: Plug-ins, Scripts and Code

By IntrectOctober 20, 2026Last reviewed HPSSPluginsComparison

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

HPSSStem separation model
What it splitsSustained, pitched material from transient, broadband materialNamed parts: Demucs, for example, lists drums, bass, vocals and other
HowMedian filtering of the spectrogram (Fitzgerald, 2010); no trained modelA trained neural network
What you getComponents you can rebalance or process separatelyStems; the part left in the wrong stem is bleed. See our stem bleed comparison
Use it whenYou care about ring versus hit, or tone versus attackYou 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.

ToolTypeWhat the page saysFormats and systemsLicence and costLatency
Intrect HPSSPlug-inSeparates 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 buildFree; needs an Intrect account, a download link is emailed; DSP MIT licensed; version 0.1.11536 samples; keep host delay compensation on
UnravelPlug-inDivides a signal into tonal, transient and noise layers you can rebalance; all three streams at 0 dB reconstruct the input exactlyVST3, AU, Standalone; macOS 11+, Windows 10+, LinuxOpen source, GPL-3.0; version 1.6.0 dated October 2, 2026Not stated
LUMINAPlug-in with an HPSS featureA spectral dynamics and glitch re-synthesizer; its HPSS feature splits tonal and percussive parts with dual-axis median filteringVST3; 64-bit Windows 10 and 11Open source, AGPL-3.0; release not statedNot stated
FluCoMa HPSSToolkit 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 pageNot statedNot stated
ReaCoMa (fluid-hpss)REAPER scriptsReaScripts that interface with the FluCoMa command-line tools, which do the DSP; includes fluid-hpss.luaREAPER; operating systems not statedBSD-3-ClauseScripts call external tools; not a plug-in
librosaPython librarylibrosa.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 marginPythonNot readYou call it from code

Which one fits

Where Intrect HPSS is the wrong choice

How to test any of these fairly

  1. Pick a passage with a clear ring or hit and one with dense sustained material.
  2. 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.
  3. Add the components back. Unravel states that its three streams do at 0 dB; check the others.
  4. Match loudness before you judge a change.
  5. 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

Sources

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.