Re: music pitch tracking (Bob Masta )


Subject: Re: music pitch tracking
From:    Bob Masta  <audio@xxxxxxxx>
Date:    Mon, 30 Mar 2009 21:34:58 -0500
List-Archive:<http://lists.mcgill.ca/scripts/wa.exe?LIST=AUDITORY>

On 29 Mar 2009 at 12:08, James W. Beauchamp wrote: > What is needed is a system that is accurate to a few cents but can also > cover a wide range of pitch, at least 3 octaves, but 7 would be great. > It should be able to handle a wide variety of waveforms, drop outs, a > fair amount of noise and inharmonicity, and it should be able to handle > very fast changes in pitch, i.e., it should be able to accurately > transcribe virtuosic passages (64th notes, etc.), as well as glides, > vibrato, and portamento. > > Besides displaying the data on a log(f0) vs. time chart, the system > should also be able to generate the data to a file for subsequent > post-processing research. Conversion to MIDI and musical notation are > nice features, but these are already available in programs once the > log(f) data is provided. On the face of it, the upcoming Daqarta version 5.00 does pretty much what you ask, in real time. It covers 7 octaves or more, but they are not the 7 everyone really wants since they are the 7 at the high end... stuff around 100 Hz (male voices) and below is not handled well. Handles any waveform, including missing fundamental, and a fair amount of noise. You can restrict the frequency range to reduce out-of-band noise if you know the desired input range. Haven't tested inharmonicity as such, but that might be a problem if the fundamental is weak. Don't know how you define drop-outs... if there is no input above an adjustable threshold, the note stops. Resolves notes to 1 msec (though 10 msec is more representative), and tracks glides, portamento, and vibrato. However, while the display shows a smooth glide, for MIDI output a change in pitch (beyond a value of hysteresis that you set) is regarded as a new note, so the result is a staircase rather than a smooth glide. I guess I could make smooth glides optional, with some hueristic to decide whether to step or glide based on rate of change. But the problem with real-time tracking is that you can't wait to see what happens before deciding how to handle any given situation. Any time spent waiting adds response latency, which is a real problem when trying to listen to yourself and the MIDI output. The display is a log(f) display, with an optional keyboard background. This is just a pattern of black and white (or any colors you choose) horizontal bars for the piano keys, though of course here the black and white keys are the same width because they are the same log(f) width. The tracked pitch is shown as a colored line, with the color scaled according to loudness. (It's the same color that you'd see on the color spectrogram.) Anyway, I said "on the face of it" because I am sure this won't be the answer to anyone's prayers. It's probably fine for vocal training like the Passaggio program that John mentioned, but what I really wanted was to be able to play real-time MIDI music by humming... and humming (at least for typical low male voices) is what it handles worst. Whistling is handled pretty well, but even here it turns out that real-time performance is a can of worms. You have to do everything *very* carefully, since the pitch trackerisn't smart enough to ignore lots of little details that we easily ignore when just listening to a live performance (fret noise, breath, etc). It wants to turn everything into a note! I think learning to "play" this is going to be just like learning to play an instrument... it's certainly not going to turn anyone into an overnight sensation. But is *is* a lot of fun... especially with goofy stuff like laughter, speech, or room noises. The MIDI-played note can be set to an offset of the tracked pitch, so feedback from speaker to mic can be a real trip! Best regards, Bob Masta D A Q A R T A Data AcQuisition And Real-Time Analysis www.daqarta.com Scope, Spectrum, Spectrogram, Signal Generator Science with your sound card!


This message came from the mail archive
http://www.auditory.org/postings/2009/
maintained by:
DAn Ellis <dpwe@ee.columbia.edu>
Electrical Engineering Dept., Columbia University