Re: [LAD] [Source uploaded to GitHub] GuitarSynth

2015-04-26 Thread Gerald

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

That interests me to. I am familiar the concepts of wavelets from
computer vision (haven't worked with them) where they are used for image
denoising, feature extraction and so on.
Gerald

On 26.04.2015 19:00, Tim E. Real wrote:
 Fons do you have any insight into wavelets and how they might
  be better for lower latency pitch detection than FFT?

-BEGIN PGP SIGNATURE-
Version: GnuPG v1

iQEcBAEBAgAGBQJVPWP2AAoJEPcmmqtDfLve17UH/0pdWcb4VAaIyybruRRUcS5h
0GIRaaejPt8B0lxCJ4ZD1OP7mV5e/EzPQ341edOtCMZMMm3OP6rT9w99YGLvZnY+
p9h19QoSJDCDStDw1zTNYMPzx5RTwntsy/zEb5rSlVxnfktQehD+c2QCjwPSOTXm
Oxk+0kqdWQL7/f6uvDs24zdkVxQ62mIKTjkEXt58FoTtVYmmPC7iyau9WyOTO/ge
aX5O3ZCVpHSzqGKpOSDROpDpXFLhMm34mFT8ubkzcJUx8BqtJ/HhYf4xvLvQBG+O
I6MyTtc0spmHF63/DBPlHlX4I+frSptghWNiufr3WQ6nHVwHWmHTraX5qlP9BeY=
=3gDd
-END PGP SIGNATURE-

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [Source uploaded to GitHub] GuitarSynth

2015-04-26 Thread Fons Adriaensen
On Sun, Apr 26, 2015 at 01:00:40PM -0400, Tim E. Real wrote:
 
 Fons do you have any insight into wavelets and how they might
 be better for lower latency pitch detection than FFT?

I don't think they will allow you to have better latency
if all other aspects of performance are kept equal. 

Don't expect magic from wavelets - they can't provide 
information that isn't there. What they allow you to do
is modify the tradeoff between resolution in time and
frequency.  But the product of the two is limited by
the 'uncertaintly principle' in all cases: better 
resolution in time means less resolution in frequency
and vice versa. 

There is no way to break this limit *unless* you make
assumptions about the signal to be detected and accept
failure if these are not valid. Human hearing seems to
do this. In the case of a guitar signal there are some
valid assumptions, e.g. the maximum number of notes
and the typical exponential decay of their envelope.

For the last ten years or so, a new technique called
'compressive sensing' has been a hot topic in DSP.
It is being used to do all sorts of things that at
first sight seem impossible, such as recovering a 
signal from random samples well below the Nyquist 
rate. It again depends on making certain assumptions
about the analysed signal, in this case that there
exists a 'sparse' representation of it.   

The whole theory behind CS is a bit counter-intuitive
but mathematically perfectly sound. I'm pretty sure
it will lead to some new ways to do pitch detection. 

Ciao,

-- 
FA

A world of exhaustive, reliable metadata would be an utopia.
It's also a pipe-dream, founded on self-delusion, nerd hubris
and hysterically inflated market opportunities. (Cory Doctorow)

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [Source uploaded to GitHub] GuitarSynth

2015-04-26 Thread Gerald
Oh, thanks. Didn't catchup on the thread :)
Gerald

On 26.04.2015 19:00, Tim E. Real wrote:
 OK Albert, I uploaded the source of my polyphonic guitar synth to:

 https://github.com/terminator356/polyguitsynth

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [Source uploaded to GitHub] GuitarSynth

2015-04-26 Thread Albert Graef
On Sun, Apr 26, 2015 at 7:00 PM, Tim E. Real termt...@rogers.com wrote:

 OK Albert, I uploaded the source of my polyphonic guitar synth to:
 https://github.com/terminator356/polyguitsynth


Great, many thanks!


-- 
Dr. Albert Graf
Computer Music Research Group, JGU Mainz, Germany
Email:  aggr...@gmail.com
WWW:https://plus.google.com/+AlbertGraef
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [Source uploaded to GitHub] GuitarSynth

2015-04-26 Thread Tim E. Real
On April 26, 2015 09:10:30 AM Fons Adriaensen wrote:
 On Sat, Apr 25, 2015 at 08:35:56PM +0200, Albert Graef wrote:
   Question: I tried a demo product which did polyphony, with similar
   latency as my app, which claimed to have a full version with
   near-zero latency.
   
   Is this actually possible?
  
  Sounds like snake oil to me, but don't take my word for it.
 
 Sound very unlikely. One problem with polyphonic pitch detection
 is two or more notes that share a number of harmonic frequencies
 and start at the same time. This will occur with many chords that
 contain simple intervals like octave and fifth.
 
 It is possible to detect which harmonics are shared (they will
 have a different amplitude / phase profile) but this requires
 tracking them for some time and hence additional latency.
 
 I suspect the same is even true for human perception. If we hear
 a perfect fifth chord we may have the impression to have detected
 that it consist of two notes immediately. But there are many
 examples of our brain playing tricks and 'backdating' the result
 of an observation which has actually taken more time than we
 think.
 
 Real-time polyphonic pitch detection is still a research topic,
 just look at the publication dates of some of papers already
 mentioned. For a guitar it may be easier than the general case
 due to the restriced frequency range of each string and in
 general a clear attack of each note.
 
 
 Ciao,


OK Albert, I uploaded the source of my polyphonic guitar synth to:

https://github.com/terminator356/polyguitsynth

The latest version was written in Borland C++ Builder around 2000.

The source uses a few of my 'hidden continuous borderless mouse'
 controls which I discussed in another current LAD thread concerning 
 'user eXperience in Linux'.
You won't be able to actually build the source without those 
 controls' sources, which I did not upload :-(

However, I included the finished executable !
And... it *runs* under Wine !
:-)

(Gotta love Wine, the older the program, the better it is.)

Inspiration for the OP I hope.

Try it, both to see how the program works and to see how my 
 'hidden continuous borderless mouse' controls work.
(Press the mouse inside any of the edit boxes and then move the
 mouse, observe the mouse hides and the edit value rolls on and on...)

The source does include the actual DSP library I used.
It is the GNU2 licensed 'libdsp' from Philippe Strauss.

The program includes the ability to use the PC keyboard
 as a music keyboard, hence the map on the right.

[Fons:] Yeah, believe it or not it works best with *dead* guitar strings
 and the guitar's tone knob all the way down.
Don't want too many rich guitar string harmonics in there!
Given that, it works kinda OK.

Fons do you have any insight into wavelets and how they might
 be better for lower latency pitch detection than FFT?

Cheers.
Tim.

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev