Wiki » History » Version 9

Version 8 (Chris Cannam, 2015-01-21 02:03 PM) → Version 9/11 (Chris Cannam, 2015-04-28 05:32 PM)

h1. Preprocessing options to be implemented

h2. Implemented

h3. Flatten dynamics

Integrating the "Flatten Dynamics plugin":/projects/flattendynamics code

h3. De-envelope

Using cepstral processing to factor out the spectral envelope, after "Simple Cepstrum":/projects/vamp-simple-cepstrum

h3. Remove broadband noise

Like the initial noise-removal phase of "Silvet":/projects/silvet -- which runs noise removal on the constant-Q spectrum, but I expect the method would work unchanged for STFT as well

h3. Add broadband noise

Surprisingly turned out to have a potential application in MATCH: adding -30dB white noise to the inputs gave a more stable alignment

h2. Not (yet) implemented

h3.
Remove pitched sounds

For symmetry with "Remove broadband noise", something that filters out stable pitched sinusoidal or harmonic content in the manner of the "Devuvuzelator":/projects/devuvuzelator (does this have any application?)

*Note* - not implementing this one yet

h3. Add broadband noise

Surprisingly turned out to have a potential application in MATCH: adding -30dB white noise to the inputs gave a more stable alignment


h3. Other spectral whitenings?

h3. Other aspects of harmonic/percussive separation?

h2. Processing order

We should have one single plugin / embeddable C++ class / application and it should have a list of on/off toggles for the available preprocessing options.

If more than one option is selected, the preprocessors should be applied in a fixed order:

# De-envelope
# Remove broadband noise
# (Remove pitched sounds)
# Flatten dynamics
# Add broadband noise

Nos. 1-3 are carried out in the frequency domain, the remaining two in the time domain.