Skip to content

tachi-hi/HPSS

Repository files navigation

HPSS (Harmonic/Percussive Sound Separation)

About

This software separates a music audio signal (monaural PCM (.wav) format) to two components, "harmonic" and "percussive."

The codes in this repository were used in the experiments of the following paper. [IEEE Xplore]

@article{tachibana2014hpss,
  author={Hideyuki Tachibana and Nobutaka Ono and Hirokazu Kameoka and Shigeki Sagayama},
  journal={IEEE/ACM Transactions on Audio, Speech, and Language Processing},
  title={Harmonic/Percussive Sound Separation Based on Anisotropic Smoothness of Spectrograms},
  year={2014},
  volume={22},
  number={12},
  pages={2059-2073},
}

LICENSE

  • MIT
  • For academic use, please cite the paper above.

Directory

  • src: source codes
  • scripts: scripts

How to use (on UNIX-like systems)

Quick Build (recommended)

git clone https://github.com/tachi-hi/HPSS
cd HPSS
./build.sh

This script automatically handles everything: installing CMake (if needed), fetching vcpkg, resolving dependencies (boost, fftw3), and building the project.

Two executables will be generated in build/:

  • build/HPSS_separation
  • build/HPSS_smoothness_eval

Other build commands:

./build.sh debug     # Debug build
./build.sh clean     # Remove build artifacts

Manual Build (with system libraries)

If you prefer to install dependencies manually:

# Debian/Ubuntu
sudo apt-get install cmake libboost-program-options-dev libfftw3-dev

# macOS (Homebrew)
brew install cmake boost fftw

Then build with CMake:

cmake -B build
cmake --build build

Legacy Build (Makefile)

The original Makefile is still available in src/:

sudo apt-get install libboost-dev libfftw3-dev
cd HPSS/src; make; cd -

Notes

  • The help message of HPSS_smoothness_eval may not help you.

Known bugs (to be fixed)

This program accepts only the monaural (1ch) wav files. If you apply the program to a stereo wav file, it will emit the segmentation fault and halt.

Other Resources

Other HPSS Implementation

Sliding version

Another implementation of HPSS is availabel below. Note that the algorithm used in the program below is not identical to the one described in the paper above (and the codes in this repository).

https://github.com/tachi-hi/slidingHPSS

Windows GUI version (not available now)

GUI version (not coded by me) is was available below. Note that the algorithm used in the program below is not identical to the one described in the paper above (and the codes in this repository).

Audacity

see http://ismir2015.uma.es/LBD/LBD16.pdf

librosa

librosa, a audio processing module for python, also contains a module named hpss, though the algorithm is different from the one described in the above paper.

Links to other softwares used in the above paper

Releases

No releases published

Packages

 
 
 

Contributors