On November 12, 2010 12:48:47 pm Ralf Mardorf wrote: > On Fri, 2010-11-12 at 18:32 +0100, Dominique Michel wrote: > > Le Fri, 12 Nov 2010 00:54:58 -0500, > > > > "Tim E. Real" <[email protected]> a écrit : > > > On November 11, 2010 11:06:10 pm Dominique Michel wrote: > > > > Le Thu, 11 Nov 2010 16:43:41 -0300, > > > > > > > > Camilo Polymeris <[email protected]> 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 don't know. If you take a guitar synthesizer, it have a polyphonic > > mic, that is one mic per cord (similar to a simple humbucking per note). > > They certainly make 6 monophonic note extractions. Yes, there are guitar synthesizer kits, which use a multi pickup with six individual outputs. Some come complete with a special guitar. Having multi pickup with six individual outputs is certainly the best way. Then you only need six easy mono synthesizers. But what I am talking about is using a normal guitar with a normal pickup, and using FFTs to make a polyphonic converter. It works, but of course it's far from perfect.
> > > > Guitar mics take in account only the vertical movements of the cords, > > the output signal is the derivative of this movement. > > > > Also, the harmonic content of a guitar note is not constant. During the > > attack, the value of the fundamental is the most important signal in > > the note, but during the sustain, the value of the fundamental decrease > > very fast and the second harmonic become the highest tone in the note. > > It is even more complicated when the cord touch the frets because you > > will get false maximums of the signal. You can also get hum with a > > simple humbucking, and you will get saturation with a double humbucking. > > > > > 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? > > > > I am not sure, but the FFT is a particular case of the bipolar Laplace > > transformation, Yes, that is how I understand it. > > so I don't think than the necessary time to get enough > > samples in order to get a reliable result would be better. The worst > > case scenario depend on the lowest note you will able take in account. > > > > > Wavelets? I studied those as well, but my meagre brain could not > > > cement. > > > > If it is what I call "filtre en peigne" in French (comb filter), it can > > be an alternative. It is DSP algorythms for them, but I don't know if it > > is something for a PC processor. Oui, il y' a des plugins LADSPA qui donne les fonctions 'comb filter'. (Pardonnez mon Francais, en Canada, nous sommes censés être bilingues!) > > > > > 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. > > > > The fastest algorithm would be to find the maximums of the signal. > > The time between 2 consecutive maximums = the period of the note. > > The delay would not be constant, but it would not exceed 1+1/2 periods > > of the note in the worst case. In practice, it would be something > > between 1 and 1+1/4 periods of the note in most (all?) cases. > > > > This will be very easy with an instrument like a flute, but much more > > difficult with an instrument like a guitar, because you will have to > > take in account the false maximums possibility (when you play very > > hard on the cords or when you have a not so good guitar) and the > > sustain of the note. > > > > Ciao, > > Dominique > > Pardon, I didn't read the whole thread, but just this email and I'm a > guitarist. > > Imagine a Jimi Hendrix common E7#9 chord or something similar. > > Translation from the guitar strings to a piano isn't easy for > automation! It's easy for a jazz musician ;), but nearly impossible to > "translate" by a computer from an instrument like the guitar, to an > instrument, like the piano. > > Again, I don't know what this thread is about, but at least some chords > can't be taken from the guitar, to the piano, without some human > imagination about the wanted effect. > 2 Cents, > Ralf Yes, of course, this polyphonic FFT technique is fraught with difficulties. Guitar strings are so rich in harmonics, that false triggering is a real problem. And complex chords often trigger the wrong notes. So the makers of such software recommend that the tone knob is turned down, and a clean sound is used, usually using the neck pickup. However in usage, I was able to play chords and solos, boogie-woogie and such, and the software did a pretty neat job. It's very entertaining. Tim. _______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/listinfo/linux-audio-dev
