TuneNN: A transformer-based network model for pitch detection
github.com
github.com
It seems to me like wikipedia agrees that even if the fundamental frequency is missing we could still use some kind of FFT to find the fundamental frequency being played (and therefore the perceived pitch). I might be missing something this is very far from my area of expertise :P
https://www.hibberts.co.uk/what-note-do-we-hear-when-a-bell-...
Almost all musical instruments (such as pianos, organs, orchestral instruments and the human voice) have sounds that contain a range of frequencies f, 2f, 3f, 4f and so on where f is the lowest frequency in the sound. The pitch or note we asssign to the sound corresponds to the frequency f. Frequencies with this regular arrangement are called harmonic. The frequencies in the sound of bells, on the other hand, are not harmonic, and the pitch we assign to the sound of a bell is roughly an octave below the fifth partial up ordered by frequency. This partial is called the nominal, because it provides the note name of the bell. There often isn’t a frequency in the bell’s sound corresponding to the pitch we hear.
The timbre of musical notes is the result of various combinations and transformations of harmonic relationships, harmonic strengths and weaknesses, instrument resonant peaks, and structural resonant peaks over time.
It utilizes the transformer-based tuneNN network model for abstract timbre modeling, supporting tuning for 12+ instrument types.
https://github.com/maxrmorrison/torchcrepe
Does anyone know what the current state of the art is, within the Music Information Retrieval community?
What are your thoughts on PESTO which learns pitch-prediction very well with a small network, and uses a self-supervised objective?
Do you have any comparisons against other pitch detection tech? Accuracy? Delay/Responsiveness? I assume it's much more compute work than a handcoded FFT type pitch detector.
I think it's possible this would find utilization in the piano world if the output offers something new / something that can analyze what a piano tuning maestro can hear and make it accessible to a mid-tier tuner.
> that translating eg. GPL Python or C++ into C would mean the license is retained
It depends a bit on what exactly "translating" means but you could easily be a derivative work.
Honestly in that situation I wouldn't even look at the code. You might use in to test equivalent behavior after you have your own implementation, but only in a gross sense.
Don't sell yourself short. This is the sort of thing that is only straightforward if you have the right background.
My favorite is the McLeod Pitch Method/MPM. Runs fast enough for realtime purposes in a WASM example too: https://github.com/sevagh/pitchlite
So I have been staring at your code for many hours, and the YIN-implementation works well. The PYIN on the other hand.. well I necro posted a while ago in one of your pull requests I think ;)
An error occurred running the Unity content on this page. See your browser JavaScript console for more info. The error was: TypeError: 'microphone' (value of 'name' member of PermissionDescriptor) is not a valid value for enumeration PermissionName. checkPermission@https://aifasttune.com/public/web/microphone/microphone.js:3... _Microphone_checkPermission@https://aifasttune.com/public/web/Build/web.framework.js:10:... @https://aifasttune.com/public/web/Build/web.wasm:wasm-functi... @https://aifasttune.com/public/web/Build/web.wasm:wasm-functi... @https://aifasttune.com/public/web/Build/web.wasm:wasm-functi... @https://aifasttune.com/public/web/Build/web.wasm:wasm-functi... @https://aifasttune.com/public/web/Build/web.wasm:wasm-functi... @https://aifasttune.com/public/web/Build/web.wasm:wasm-functi... invoke_iiii@https://aifasttune.com/public/web/Build/web.framework.js:10:... @https://aifasttune.com/public/web/Build/web.wasm:wasm-functi... @https://aifasttune.com/public/web/Build/web.wasm:wasm-functi... @https://aifasttune.com/public/web/Build/web.wasm:wasm-functi... @https://aifasttune.com/public/web/Build/web.wasm:wasm-functi... @https://aifasttune.com/public/web/Build/web.wasm:wasm-functi... @https://aifasttune.com/public/web/Build/web.wasm:wasm-functi... @https://aifasttune.com/public/web/Build/web.wasm:wasm-functi... unityFramework/Module._SendMessageString@https://aifasttune.com/public/web/Build/web.framework.js:10:... ccall@https://aifasttune.com/public/web/Build/web.framework.js:10:... SendMessage@https://aifasttune.com/public/web/Build/web.framework.js:10:... SendMessage@https://aifasttune.com/public/web/Build/web.loader.js:1:3343 loadURL@https://aifasttune.com/public/web/game/fastGameController.js... i@https://aifasttune.com/assets/index-64322640.js:1:777 setup/<@https://aifasttune.com/assets/index-64322640.js:1:611