Oeyvind / featexmod

GNU General Public License v3.0
18 stars 1 forks source link

Multiband transient trigger #8

Open Oeyvind opened 8 years ago

Oeyvind commented 8 years ago

Separate transient triggers for energy in hi/mid/low bands. This should probably not be implemented by using the multiband envelope follower directly, since transients often give significant energy in all bands. The multiband transient trigger should ideally be "monophonic" in that it only register a transient in one band at a time. A classification algorithm might be used, but perhaps a more lightweight approach could be to combine full range transient detection with e.g. centroid and crest to identify which band the transient is most perceptually significant. Comparision between the energy levels of the multiband envelope generators might possibly also be used for this purpose(?)

Oeyvind commented 8 years ago

Additional comment on the use of centroid/crest: The centroid gives an indication of where in the spectrum the energy is focused. The aim is to counteract that the centroid goes high on noisy sounds. Crest seems to be low on noisy sound, high during cleaner tonal sounds. Try (centroid * crest) as an indicator of perceptual timbral weight of the transient. Probably, the centroid on "clean tone" transients should be mapped by taking the typical pitch range (say 200Hz-1000Hz), mapping it to the (useful) spectral range (say 200Hz to 5000Hz) ... ?

Experimentation results:

Oeyvind commented 8 years ago

Spectral spread may possibly also be used instead of crest. Mfcc indication of voiced/unvoiced can similary be used for the purpose of "perceptual centroid scaling"(?)

Oeyvind commented 8 years ago

The multiband transieng trigger can also (additionally) be output as a "timbral state" indicator, a radio-button-like indicator showing the band where the latest transient was detected.