CorePitchDetector

Waveform pitch detection in Core

(19 Votes)
1.3 (Updated 16 years ago)
6.2kB
March 16, 2008
Reaktor 5 or lower

DESCRIPTION

Pitch Detector.rcc, FrequencyToPitch.rcc

In the forums I read the post by chaircrusher at http://www.native-instruments.com/forum/showthread.php?t=61892

Using his module as a reference I implemented CList's description of what the equivelent Core module would be.

My DSP is in it's baby steps, so I had to google a bit to find the formula for frequency to pitch which I eventually found at http://www-crca.ucsd.edu/~msp/techniques/v0.08/book-html/node8.html

A sample accurate mono signal analyzer that outputs the detected MIDI pitch as a float, all maths at default precision.

The construction is measuring the positive zero crossings of incoming data, measure the distance between them to get frequency and then converting that to MIDI pitch.

Since the factory lib has an P2F but not an F2P core module, I built an F2P macro
which might be of use to other people as well. I've included it seperately in this zip.

This module is released under an LGPL license, for details see
http://www.gnu.org/licenses/lgpl.html

(edit fixed PitchDetector's suffix, uploaded originally as RCC, actually an MDL)..

COMMENTS  (10)

Florian Scholz
5 years ago
Dosent Work with NON-Sine-Signals :-(
Stephen Burgess
5 years ago
Many Thanks
Nicholas Johnstone
6 years ago
Hefty thanks, very well done. This is a major piece of a puzzle I am working on. I hope it is alright to include this in another user library creation? I will try and do this myself sometime to learn some R
Marcel Stark
7 years ago
Very useful! With monophon input astonishing precise! 1001 thx!
daniel mackinlay
15 years ago
whata lob: "quantize", under "math" builtins.
Tasos Karadedos
16 years ago
Thank you. I think I got it almost working, the only I cannot find anywhere (manual, nor module or forum) is how to conert the float to int, unless I'm missin something obvious here
Nathan Ramella
16 years ago
To convert the float output to a MIDI note event.. Well. The pitch corresponds to a MIDI note as it stands, so basically you'd just hook up a 'MIDI Channel Out' message with these values hooked into the input: ST = 1 = note-on, 0 == note-off CH = 1 (channel 1) NR = (nothing) Val = Output of the detector That should work. You may want to stick an integer converter at the end of the F2P macro to get whole note steps.
Tasos Karadedos
16 years ago
Could you perhaps suggest a way to convert the float output to a midi note event? been trying to find the way but failed so far ...
Nathan Ramella
16 years ago
Try cutting/pasting the F2P macro from the macro? Otherwise can you explain to me in a little more detail whats not loading about it? What error does it give? What file are you trying to load? etc.
B Frost
16 years ago
The Frequency to Pitch won't load helP!
now