VCO, LFO, DCO, DDS notes

From Helpful
Revision as of 18:39, 12 October 2024 by Helpful (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The physical and human spects dealing with audio, video, and images

Vision and color perception: objectively describing color · the eyes and the brain · physics, numbers, and (non)linearity · color spaces · references, links, and unsorted stuff

Image: file formats · noise reduction · halftoning, dithering · illuminant correction · Image descriptors · Reverse image search · image feature and contour detection · OCR · Image - unsorted

Video: file format notes · video encoding notes · On display speed · Screen tearing and vsync

Simpler display types · Video display notes · Display DIY
Subtitle format notes


Audio physics and physiology: Sound physics and some human psychoacoustics · Descriptions used for sound and music

Noise stuff: Stray signals and noise · sound-related noise names · electronic non-coupled noise names · electronic coupled noise · ground loop · strategies to avoid coupled noise · Sampling, reproduction, and transmission distortions · (tape) noise reduction


Digital sound and processing: capture, storage, reproduction · on APIs (and latency) · programming and codecs · some glossary · Audio and signal processing - unsorted stuff

Music electronics: device voltage and impedance, audio and otherwise · amps and speakers · basic audio hacks · Simple ADCs and DACs · digital audio · multichannel and surround
On the stage side: microphones · studio and stage notes · Effects · sync


Electronic music:

Electronic music - musical and technical terms
MIDI ·
Some history, ways of making noises
Gaming synth ·
VCO, LFO, DCO, DDS notes
microcontroller synth
Modular synth (eurorack, mostly):
sync · power supply · formats (physical, interconnects)
DIY
physical
Electrical components, small building blocks
Learning from existing devices
Electronic music - modular - DIY


DAW: Ableton notes · MuLab notes · Mainstage notes


Unsorted: Visuals DIY · Signal analysis, modeling, processing (some audio, some more generic) · Music fingerprinting and identification

For more, see Category:Audio, video, images


VCO - Voltage-Controlled Oscillator

LFO - Low-Frequency Oscillator

DCO - Digitally Controlled Oscillator

DDS - Direct Digital Synthesis

This article/section is a stub — some half-sorted notes, not necessarily checked, not necessarily correct. Feel free to ignore, or tell me about it.

DDS (Direct Digital Synthesis) (a.k.a. numerically controlled oscillator) is a way of digitally generating waveforms - which happens to be capable of a wide frequency range.


DDS ICs - which are dedicated to the task- are typically aimed at Mhz-rate function generation, and care more about the range of frequencies, than about the waveforms it accesses, which is often fixed, sometimes just sinusouds. Both reasons why most DDS ICs aren't a very obvious choice for musical design.

(...some are - in which case you can conside them precise, wide-range VCO in its own tiny little sound card, and you can have a microcontroller feed it arbitrary waveforms -- or indeed samples. DDS has been used by various samplers, and by some synthesizers that can sample.) (TODO: examples)


Yet the process is simple enough that you can do the same in a microcontroller at a reasonable rate, and fairly comfortably if you only care about audio-rate speeds.


Whether a DAC, PWM, or digital out-and-resistor-ladder is your best output, and how regular you can get the output, and whether you need to add a lowpass because some of those are sample-and-hold style output (a.k.a. 'how to do a DAC wrong and actually introduce the stairstep that never existed'), is up to context.

In fact, DDS isn't an output method worked out to the lowest levels, it's more an angle on how to use a clock source to go about it.


The question of how you would play on such simple hardware can be a good introduction on DDS's view.

Say you wanted to play a sample at arbitrary rates, or three at once each at their own rate, how would you?

You would need three regular clock signals, each run at their own speed to go to the next sample on each clock, right? Even if your hardware gives you multiple clocks/timers, those usually come from clock division, so you cannot make one go at arbitrary rates.

What if you had one clock, considerably faster, and did a much larger, faster count, moving onto the next sample every many counts?

Why does that help? Well, in a fixed-point integer-like trick, you forget(/divide/shift away) some amount of lowest bits; the more of those lower bits you throw away, the finer the granularity you get to the sample rates you can play at. You don't need to control that main clock precisely - or even at all.

You just need to be able to increment, and bitshift. Those are cheap operations.

DDS would call that counter a phase accumulator (there are good reasons that you'll understand when reading up on the details), which indexes a waveform in memory external to the generation part (possibly ROM) - and you would only need one cycle of it, so the phase essentially is the index (with some extra possible tricks for symmetric waveforms).

(This is technically just the simplest form of DDS, phase truncation DDS. There is also dithered DDS, which does much the same but suppresses some harmonic-frequency issues, up to 12dB(verify), at the cost of a slightly higher noise floor)


NCO - Numerically Controlled Oscillator

Unsorted