I would like to report a potential issue. The number of harmonics (and hardcoded FFT bins) makes it that the algorithm can ignore the upper F0 bound quite easily. I detected this by trying out with female input voice where the resulting F0 is wrong due to the upper F0 limit getting ignored
A quick fix is to setup the proper number of harmonics and go inside the halcyon.m and edit the FFT bins array to match this number