

Numerically Controlled Oscillators - jcr
http://0au.de/2015/07/numerically-controlled-oscillators

======
masswerk
Regarding quick oscillators, compare Marvin Minsky's method for circles by
shifts only:

 _«Here is an elegant way to draw almost circles on a point-plotting display:_

NEW X = OLD X – epsilon * OLD Y

NEW Y = OLD Y + epsilon * NEW(!) X

 _This makes a very round ellipse centered at the origin with its size
determined by the initial point. epsilon determines the angular velocity of
the circulating point, and slightly affects the eccentricity. If epsilon is a
power of 2, then we don 't even need multiplication, let alone square roots,
sines, and cosines! The "circle" will be perfectly stable because the points
soon become periodic._

 _The circle algorithm was invented by mistake when I tried to save one
register in a display hack! Ben Gurley had an amazing display hack using only
about six or seven instructions, and it was a great wonder. But it was
basically line-oriented. It occurred to me that it would be exciting to have
curves, and I was trying to get a curve display hack with minimal
instructions.»_

("Item 149 (Minsky): Circle Algorithm" in HAKMEM, Programming Hacks. MIT AI
Memo 239, Feb. 29, 1972)

Remarkably, this approach was also used for sine and cosine computations in
the Sinclair Scientific pocket calculator (1974):
[http://files.righto.com/calculator/sinclair_scientific_simul...](http://files.righto.com/calculator/sinclair_scientific_simulator.html)

For a fun application using oscillators based on this algorithm see the
"Minskytron" (by Marvin Minsky, early 1960s),
[http://www.masswerk.at/minskytron/](http://www.masswerk.at/minskytron/)

------
ChuckMcM
Back when 8 bit micros were the "big" machines :-) Hal Chamberlin wrote a book
called "The Musical Applications of Digital Microprocessors" which discusses
this sort of frequency synthesis in detail. Recommended if you can find a used
copy somewhere.

~~~
jcr
It seems the title is just: "Musical Applications of Microprocessors"

[http://www.amazon.com/Musical-Applications-
Microprocessors-H...](http://www.amazon.com/Musical-Applications-
Microprocessors-Hal-Chamberlin/dp/0810457687/)

~~~
ChuckMcM
That is the one.

------
VLM
Might get a kick out of comparing this software algo which works at Hz to KHz
with DDS synthesis hardware which works at MHz to GHz.

Typical example, an AD9851, low performance, but simple, cheap, and runs up
thru VHF frequencies.

[http://www.analog.com/media/en/technical-
documentation/data-...](http://www.analog.com/media/en/technical-
documentation/data-sheets/AD9851.pdf)

(start reading around page 12)

~~~
aswanson
Got a kick out of reading this in the datasheet: "Both versions of the AD9851
evaluation boards are designed to interface to the parallel printer port of a
PC. The operating software (C++) runs under Microsoft® Windows® (Windows 3.1
and Windows 95); Windows NT® not supported ...."

~~~
VLM
Well, it is over a decade old. I think I need to cross it off "cheap" also as
its now impacted the far side of the price bathtub curve and costs a bit more
than newer competitors. At least it is a relatively simple chip.

