noteout - pitch varies from machine to machine

peacesong's icon

Created a little tuner application that will play a reference pitch, then wait for the user audio to match the pitch and graph it.

The user audio input is fine... But, it seems NOTEOUT does not produce the same pitch frequencies from machine to machine.

Discovered this today when moving from my dying XP home system to a new XP Pro machine.

Appears the XP home system plays about 5-10 cents sharp, while the XP Pro computer plays notes 20-30 cents flat - a difference of nearly 50 cents.

Any ideas on what's going on?

How to detect and fix on the fly? (eg, play a note, capture the first frequency, subtract the difference, then add that difference to the outgoing frequency sort of thing)

Thank you for your input.

Peace

Steven Miller's icon

Perhaps if you could post your patch, or at least the relevant portion of it, it would be easier to give some feedback.

peacesong's icon

It's pretty simple and here's a stripped down version:

Max Patch
Copy patch and select New From Clipboard in Max.

If I run this on my XP home machine and click C, I get numbers very close to 60.0 (60.0-60.1 roughly).

When the same is run on XP Pro, the numbers are 59.6-59.7

.30-.40 difference between the two computers.

I get the exact same readouts from fiddle~ on both machines... ie, 1 machine plays, both print values...

And, of course there's a clear audible difference.

Chris Muir's icon

Is there a reason that you want to rely on the operating system's built-in synthesizer?

Why not just use something like cycle~ instead?

peacesong's icon

Hi Chris,

Thank you for your reply.

Suppose this question/problem more illustrates my lack of understanding of how all the pieces fit together.

The only reason I can think of to use the system synth, is to have a sound that is more piano like. Cycle~ would be a perfect technical solution, though the tone might not work well in my app.

Perhaps there's a way I can "pianofy" cycle~?

Peter Castine's icon

[noteout] is obviously dependent on the MIDI implementation provided by the synth attached to your MIDI channel. And your basic OS-supported MIDI synths are not always high quality. To put it mildly.

If you want to use a piano sample, read it into a buffer~ and play it from there. But, if you're a beginner, there will be a number of things to trip up on here, starting with finding decent piano samples that are only 512 samples long, and handling transposition.

Work your way through the tutorials and read the documentation and it's doable, paying particular attention to cycle~ and buffer~. Just guessing how things maybe might work is not the steps to Parnassus.

BTW, even with cycle~ I've found very small hardware-dependent discrepancies. I once had a workshop where I went through a basic test tone patch at 440Hz, and we had wonderful beats (< 1Hz) between the PCs and Macs in the room.