I am doing an automatic music recognition project with a deep learning model. For my data preprocessing, I am trying to calculate the Constant Q Transform for Polyphonic 88-key piano audio using Python's Librosa library. However, I do not understand what I should set fmin, n_bins, bins_per_octave to in Librosa's CQT method to do this. Specifically...

  • What exactly is a bin? Do the upper and lower boundaries of a bin correspond to the frequencies of two consecutive notes? In other words, because an 88-key piano has 7 octaves each with 12 unique notes, should I set n_bins=7*12=84 or equivalently bins_per_octave=7? Or should several bins correspond to a single note interval?
  • Is fmin supposed to be the deepest note on the 88-key piano, ie the A note with a frequency of about 27.5 Hz?
  • Why do we need fmin? Is this some sort of reference point, similar to the equation from amp to decibels?
  • What are the difference between n_bins and bins_per_octave? Which one of them is better to use? I ask this because a research paper here (line 13 and 53) uses BOTH n_bins and bins_per_octave to analyze 88-key piano music. Why do they use both parameters instead of just one?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.