Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Other transforms / reassignment methods #74

Closed
OverLordGoldDragon opened this issue Jul 18, 2022 · 2 comments
Closed

Other transforms / reassignment methods #74

OverLordGoldDragon opened this issue Jul 18, 2022 · 2 comments

Comments

@OverLordGoldDragon
Copy link
Owner

As promised (in a StackExchange thread) ... some examples for you to use for testing (and comparison) and as examples and to add to your test suite or examples archive. Just grab the sounds from the videos.

15 second segment of a drum solo at 1/4 speed
https://www.youtube.com/watch?v=6orozX1GD1w

(House music with preacher talking)
https://www.youtube.com/watch?v=nd2J4xTrSHQ

(The drum at full and 1/4 speed, a segment of the 2001 theme and the House segment with preacher at full and 1/4 speed)
https://www.youtube.com/watch?v=itUSUau6DJM

((The Vampire Song)
https://www.youtube.com/watch?v=OugT7uGGtNg

You may want to consider expanding your software to include a fuller range of transforms (or to use for comparison). The time-scale transform, which the videos show an early implementation of (in the process of being upgraded), is described in more detail in the description page of the Vampire Song. Its main property is that it is invariant with respect to arbitrary frequency reassignment (e.g. even a random scrambling of frequencies): an arbitrarily-reassigned scalogram will yield, upon inversion, the same result as the original scalogram - both reproducing the original signal.

Originally posted by @RockBrentwood in #9 (comment)

@OverLordGoldDragon OverLordGoldDragon added the question Further information is requested label Jul 18, 2022
@OverLordGoldDragon
Copy link
Owner Author

Thanks for the submission @RockBrentwood

The invariance you're describing is universal to time-frequency transforms with unity stride and filterbanks real-valued in frequency, via the one-integral inverse, within frequency-dependent rescaling and Hilbert transform. It'd indeed very neat. The "time-scale transform" is implemented here as CWT, and the CWT itself supports a log-linear discretization akin to the Non-Stationary Gabor Transform (NSGT).

On comparing reassignment methods, testing on "real data" isn't the most informative. Key properties are best tested directly with synthetic signals - component separation, AM and FM modulation rates, etc. TestSignals is fairly comprehensive, but not exhaustive. If you compare SSQ against WVD, you'll find one suffers from quadratic interference. SSQ's predecessor, "squeezing", isn't invertible, and doesn't faithfully capture AM modulations. SSQ also supports higher-order extensions, and nonuniform sampling. Hence I'd be careful on labeling something to be "same as SSQ".

@OverLordGoldDragon
Copy link
Owner Author

Correction, the invariance only holds for direct additive reassignment - squeezing sums absolute values, and another variant sums a thresholded unity (Lebesgue measure), both losing inversion and invariance.

@OverLordGoldDragon OverLordGoldDragon removed the question Further information is requested label Jul 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant