I have tested Terhardt's Pitch analyzer with a signal that is supposed to contain two pitches,
but only one appears in the spectral pitch pattern and none appears in the virtual pitch pattern, while the multiplicity never exceeds 1.
I tried to track down where this result comes from and ended up in file ptp2svp.m. Here ptp.count is set to 0 in line 53. The next time it can be changed is in line 57, where ptp=compfreqlimit(ptp); is called. That function imitiately starts with if (ptp.count > 0), and so no statements can actually be executed.
As a result, only one frequency is transformed to become a spectral pitch in function spp=createspp(spp,ptp,SPMAX), even if there have been more peaks found in the spectrum.
Do I oversee something, or did some unintended thing happen here?
Thanks,
Philipp Aichinger, PhD
Medical University of Vienna
Department of Otorhinolaryngology
Division of Phoniatrics-Logopedics
AUSTRIA
Dear Psysound3 team!
Thank you so much for doing Psysound!
I have tested Terhardt's Pitch analyzer with a signal that is supposed to contain two pitches, but only one appears in the spectral pitch pattern and none appears in the virtual pitch pattern, while the multiplicity never exceeds 1.
I tried to track down where this result comes from and ended up in file ptp2svp.m. Here ptp.count is set to 0 in line 53. The next time it can be changed is in line 57, where ptp=compfreqlimit(ptp); is called. That function imitiately starts with if (ptp.count > 0), and so no statements can actually be executed. As a result, only one frequency is transformed to become a spectral pitch in function spp=createspp(spp,ptp,SPMAX), even if there have been more peaks found in the spectrum.
Do I oversee something, or did some unintended thing happen here?
Thanks,
Philipp Aichinger, PhD Medical University of Vienna Department of Otorhinolaryngology Division of Phoniatrics-Logopedics AUSTRIA