Chris@9: Chris@9: pYIN Chris@9: ==== Chris@9: Chris@9: pYIN is a modification of the well-loved YIN algorithm for fundamental Chris@9: frequency (F0) estimation in monophonic audio. Chris@9: Chris@159: This is a Vamp plugin (https://vamp-plugins.org) implementation of Chris@9: pYIN, as well as the original YIN method. The plugin can be used by Chris@9: any Vamp host such as Sonic Visualiser and Sonic Annotator. Chris@9: Chris@9: Chris@9: Method Chris@9: ====== Chris@9: Chris@9: The pYIN method is a modification of the method known as YIN (De Chris@9: Cheveigné, Alain, and Hideki Kawahara. "YIN, a fundamental frequency Chris@9: estimator for speech and music." The Journal of the Acoustical Society Chris@9: of America 111 (2002)). Chris@9: Chris@9: The original YIN has one threshold parameter. In pYIN this parameter Chris@9: is replaced by a parameter distribution, and for every frame several Chris@9: fundamental frequency candidates obtained, conditional on this prior Chris@9: parameter distribution. In the second phase, a hidden Markov model Chris@9: (HMM) is Viterbi-decoded to find a "smooth" path through the Chris@9: fundamental frequency candidates. Note that this smoothed path is not Chris@9: smudging or averaging pitch estimates: any pitch estimate contains Chris@9: only fundamental frequency estimates that are genuine estimates of the Chris@9: original YIN method for some threshold parameter. Chris@9: Chris@9: The note estimator is a post-processing step on the pYIN pitch track, Chris@9: also performed as Viterbi decoding of an HMM. Chris@9: Chris@9: Chris@9: Limitations Chris@9: =========== Chris@9: Chris@9: The pYIN method is designed to reliably extract the fundamental Chris@9: frequency of audio recordings of a monophonic, harmonic instrument Chris@9: such as the human voice. Being based on YIN means that pYIN exploits Chris@9: the periodicity of the signal. In some circumstances it will not be Chris@9: reliable. Such circumstances occur, e.g. Chris@9: Chris@9: ... if the source audio is not monophonic, e.g. a singer with Chris@9: accompanying instruments, Chris@9: Chris@9: ... if the recording has reverb/echo (this essentially makes it Chris@9: polyphonic), Chris@9: Chris@9: ... if, in a stringed instrument such as the cello, one string Chris@9: keeps ringing while the melody turns to a different pitch. Chris@9: Chris@9: Chris@9: Authors, Citation, License and Use Chris@9: ================================== Chris@9: Chris@159: pYIN was written by Matthias Mauch. Copyright 2012-2020 Matthias Mauch Chris@9: and Queen Mary, University of London. Chris@9: Chris@9: The YIN code was drawn from the Java implementation in the TarsosDSP Chris@9: library by Joren Six. Chris@9: Chris@9: If you make use of this software for any public or commercial purpose, Chris@9: we ask you to kindly mention the authors and Queen Mary, University of Chris@9: London in your user-visible documentation. We're very happy to see Chris@9: this sort of use but would much appreciate being credited, separately Chris@9: from the requirements of the software license itself (see below). Chris@9: Chris@9: If you make use of this software for academic purposes, please cite Chris@9: one of the publications indicated on the Publications page: Chris@9: Chris@9: https://code.soundsoftware.ac.uk/publications?project_id=pyin Chris@9: Chris@9: This program is free software: you can redistribute it and/or modify Chris@9: it under the terms of the GNU General Public License as published by Chris@9: the Free Software Foundation, either version 2 of the License, or (at Chris@9: your option) any later version. Chris@9: Chris@9: This program is distributed in the hope that it will be useful, but Chris@9: WITHOUT ANY WARRANTY; without even the implied warranty of Chris@9: MERCHANTABILITY or FITNESS FOR A ARTICULAR PURPOSE. See the GNU Chris@9: General Public License for more details. You should have received a Chris@9: copy of the GNU General Public License along with this program. If Chris@9: not, see http://www.gnu.org/licenses/. Chris@9: