Hey thanks James. I could use this method for some of my projects.
This document is not easy to follow but I think it tells us:
Your error bar goes down to 1/sqrt(n) of the error bar of a single measurement as you average n numbers. To apply this to discrete binary numbers, you gain one bit of resolution every time you reduce your error bar to 1/2, by sampling 4 times, sum them up and divide by only 2, since integer can't hold a bit after decimal. Am I right?
For the decimation, I kind of get it too. But I'll start with oversampling first.
This is a very old technique I know by the name of dithering. Basically by adding noise you make the reading jitter. Then by averaging you can get a finer resolution because if a voltage is close to a threshold between one reading and the other it will be nudged more often over the threshold than a voltage that is slightly lower.
However it relies on noise being of the same order of magnitude as the steps in the A/D. Quite frankly if you need an extra few bits I think you would be better off getting an external A/D.
At what frequency does the control voltage of the musical instrument change? Is it the actual sound, or something else?
What resolution (number of bits) do you need?
A duemilanove is only good for a signal with the highest component a tad under 4.8KHz (the Nyquist limit says divide the sample frequency by very slightly more than 2, and an Arduino ADC runs at 9.6K samples/second), and depending on what you want to do, you may need many more samples.
Oversampling using the 'noise-dithering' technique to give two more bits of resolution would reduce 4.8KHz by 16x. So the signal frequency would need to be less than 4.8KHz/16 = 300Hz, i.e. D' above middle C.
if you needed more than 2 samples to reconstruct a signal, it will be even worse.