question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

(cc @ebattenberg @dpwe)

Seems like we ought to be able to do this, if we preserve phase in the cqt.

The main barrier comes from variable_hop, which uses oversampling and aggregation to handle large hop-sizes with small filters. This works fine in magnitude, but I don’t see a clean way to make it work out in the complex domain.

Perhaps we can add a dtype parameter to cqt: if the user requests a complex-type output, we preserve phase, and throw an exception on variable-hop aggregation. Otherwise, we let it through in the current state.

Are there other barriers to icqt that I’m not seeing at the moment?

Issue Analytics

  • State:closed
  • Created 9 years ago
  • Comments:21 (19 by maintainers)

github_iconTop GitHub Comments

5reactions
bmcfeecommented, Oct 8, 2016

I’ve updated the notebook to work on the latest #417 PR, which fixes a number of attenuation continuity errors in addition to normalizing filters by length.

The results now look and sound good enough (IMO) to actively work toward implementation in librosa, once #417 is merged.

Here’s an example of cqt(y) (left) and cqt(icqt(cqt(y))) (right): image

More plots and examples are included in the notebook. There are still a couple of issues to work out (eg the unscaled case), and I think there might be a small amount of delay introduced by the icqt.

1reaction
bmcfeecommented, Apr 27, 2016

What about adding Holighaus’ CQT? It’s invertible.

I don’t think we should have multiple CQT implementations.

As I mentioned above, we have a working implementation of inverse cqt. I’m holding off on making a PR because it requires phase information, which is currently not produced by default.

If we provide icqt functionality, I want it to work “out of the box”. This will be possible in 0.5.0 when the deprecated default parameter settings are replaced, and cqt is complex-valued by default.

Read more comments on GitHub >

github_iconTop Results From Across the Web

MATLAB icqt - MathWorks
Inverse constant-Q transform, returned as a vector or matrix. If the input to cqt was a single signal, then xrec is a vector....
Read more >
An overview of the inverse CQT transform (ICQT), where an...
CQT refers to a time-frequency represen-tation where the frequency bins are geometrically spaced and the Q-factors (ratios of the center frequencies to band- ......
Read more >
Sound quality comparison of inverse constant-Q ... - YouTube
Sound quality comparison of inverse constant-Q conversion with bins_per_octave in LibROSA CQT /iCQT. 264 views 1 year ago.
Read more >
librosa.icqt — librosa 0.10.0.dev0 documentation
Compute the inverse constant-Q transform. Given a constant-Q transform representation C of an audio signal y , this function produces an approximation y_hat...
Read more >
Towards an Inverse Constant Q Transform - Arrow@TU Dublin
an inverse Discrete Fourier Transform. 1. THE CONSTANT Q TRANSFORM. The Constant Q transform (CQT) was derived by.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found