SPECTRAL DISSECTORA fundamental, harmonic, transient, and noise separation plugin based on Spectral Noise Gate, HPSS, and Cepstrum

SPECTRAL DISSECTOR
↓ Download Spectral Dissector (26.09.12.zip)

A work co-created with Yan Kai.

Spectral Dissector is a fundamental-frequency, harmonic, transient, and noise separation plugin based on Spectral Noise Gate, HPSS, and Cepstrum, inspired by analog filterbanks, SPEAR, Bitwig Loud Split, Bitwig Harmonic Split, Ircam iana~, and others. I have always loved using filterbanks to decompose sound in the frequency domain and recombine it, and I wanted a more precise tool for doing so: to separate a sound's fundamental, first, second, third harmonics and so on in real time and with precision. The work's original form was a set of six parallel Spectral Gates whose thresholds were chained end to end and interlinked. The image below shows a screenshot of the initial version of the Spectral Dissector (Spectral Bank) Max for Live device. The first version was completed around June 2025. Screenshot of the initial version of the Spectral Dissector (Spectral Bank) Max for Live device In April 2026 I refactored the plugin's architecture: I introduced HPSS and Cepstrum algorithms and, drawing on Bitwig Loud Split, added a Rise/Fall control parameter, attempting thereby to separate non-harmonic transients and noise so that harmonic separation becomes more stable, more precise, and freer of artifacts. At the same time I reworked the interface logic: each Spectral Gate Band is now governed overall by a single Main Threshold, with a Spacing knob adjusting the loudness difference between the bands' thresholds and Tilt compensating the thresholds at high and low frequencies. I also added a [Focus (focus) | band-crossing sharpness | large value = clear band boundaries but possible discontinuities; small value = smooth transitions] parameter to emphasize tonal signals. In the current version the envelope-compensation algorithm has been temporarily removed because it conflicts with Cepstrum and HPSS... a shame. The implementation and UI of the new Max for Live device were done by Yan Kai.

+rep

2026.07.02

I hate Cepstrum.

2026.07.04

All known functional bugs have been fixed; the plugin now behaves as expected.

2026.08.13

This version adds a Dry switch: when it is on, channels 1-2 output the full-band dry signal, which can be sent into the same mix alongside the individual bands. The dry path now runs through the same pfft~ as the ten bands, so its latency and phase align exactly with theirs (4032 samples); summing dry with any band no longer causes beating or comb filtering. The switch is off by default.

It also fixes an architecture-level bug: the Perc Band was not in fact separated out of Bands 1-9 as intended, and its signal was duplicated there — purely percussive content, with the harmonic gate closed, fell entirely into Band 9 / Residual while the Perc Band also output it separately. Bands 1-9 now multiply their reconstruction by the harmonic mask 1 - perc_mask, and the Perc Band outputs perc_mask; the two are strictly complementary and energy-conserving: Bands 1-9 plus the Perc Band sum to the original input, sample for sample, with no added FFT context or latency.

2026.09.12