Help with note transient sharpener...

Anthony Palomba's icon

I am trying to come up with a utility that lets me extract bass lines
from songs. The plan is to use a filter to turn up the gain on lower
freqs and remove all the high end, then run it through ~fiddle.

Then problem is that turning up the bass removes the note definition.
I would like to have a way to sharpen the transients of the notes
so that fiddle can detect things better.

Can someone give me an idea as to how I would go about doing this?

Floating Point's icon

I would try using wave-shaping to introduce harmonic distortion to brighten the sound . If you use chebyshev polynomials to create the transfer function you'll get a 'clean', non-arbitrary distortion. Use 1st order, or a blend of 1st and 2nd order.
I don't know if there is an external to generate chebyshev polynomials, but if not it wouldn't be hard to implement as a patch.
hth

T

AudioLemon's icon
Anthony Palomba's icon

I don't really need to brighten the sound, I am trying to give
the transients a steeper slope. In my mind that is some kind of
dynamic gain scaling.

mudang's icon

fiddle~ might not be the best choice for this task, because it looks at harmonics to find the best pitch candidate. Setting "npartials" to a really low number might give better results.

I would give a try with sigmund~ (which is puckette's successor to fiddle~) instead, which also outputs sinusoidal tracking. Then simply pick the lowest (reasonable) sinusoidal.

If you want to sharpen your transients anyway (which is always a good thing to have ;) - the technique used by SPL's Transient Designer is amazingly simply (and probably protected by patent).
There's a short explanation with nice diagram's in Transient Designer's manual (google).

You need two envelope followers. One with a long attack time and the other with a short attack time. Subtract the slow envelope from the fast envelope and use this as your "dynamic gain". Voila !