On November 11, 2010 11:06:10 pm Dominique Michel wrote:
Le Thu, 11 Nov 2010 16:43:41 -0300,
Camilo Polymeris <cpolymeris(a)gmail.com> a écrit :
>> For me, a stand alone pitch detection
application would be better :
>>
>> audio in -> pitch detect -> midi out
>>
>> You plug the instrument into the audio in, connect the midi out to
>> any midi in in qjackctl, and it is just to play some melody.
>>
>> Ciao,
>> Dominique
>
> There is aubionotes (
http://aubio.org/aubionotes.html), which claims
> to do exactly what you want. Don't know how well, though. I am
> trying to connect it to PianoBooster, to see if that could be a
> solution. WaoN could also be an option, I'll try that next.
> Eventually, I'd like an integrated app.
>
> Greetings,
> Camilo
Thanks for the tip !
Ok. If someone is interested: I can report that
aubionotes works quite
well for the samples I tried (brass mostly, all monophonic). WaoN is
similar, maybe even better, but doesn't work realtime, it handles
pre-recorded samples, only.
Same thing here. I think that it must use some kind of fft. The problem
with fft and realtime is not the processing power but the time it take
before you get a sufficient amount of samples in order to be able to run
the fft.
Ciao,
Dominique
Exactly. I was going to start a thread asking about this. Mind if I pitch in?
Difference between lowest note on a guitar and next note is very small,
requiring large number of FFT bins. (If you play a flute, you're lucky.)
You can put a crappy time domain style pitch shifter ahead of the
converter to reduce this. (A good freq domain PS may have more latency.)
It's fun. With practice a normal guitar becomes a piano etc...
I've seen polyphonic products advertised claiming zero or near zero latency.
How do they do it?
I've used FFT, but when told of this delay problem, my friend keeps
telling me no, use Laplace transforms. When I studied them (looong ago),
I could not fully understand how to apply the knowledge.
Is there a Laplace library out there?
Wavelets? I studied those as well, but my meagre brain could not cement.
To catch the higher notes first, how about n FFTs with n samplers driven by
n separate even-tempered clocks, where n is the desired number of notes?
For ex. 3 octaves, 36 FFTs. I forget why, but I think that didn't work out.
I think the pesky relation giving the delay kept getting in the way.
You increase the sample rate and you just end up increasing the delay
because you need more freq bins for the same given resolution.
The delay is really governed by the smallest difference in notes you want
to detect. In guitar's case, I found it just passes as acceptable.
Tim.