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?