Arduino Sound – Part 1 – uCHobby

This is the first in a series of articles about generating sound with an Arduino

High Level Design top Rationale and Source of Our Project Idea

Pulse waves are commonly used for pulse-width modulation (PWM), which was used in early synthesizers to replicate two oscillators interacting with each other.Square waves are often described as sounding “hollow” or “nasal”.

IntelliDisc-DS90 Products | JBL Professional

Contents: 3d Audio - binaural encoding based on HRTF analyses

The Atmegatron uses the Atmel 328P processor, which is also at the heart of most Arduino development boards. Audio is generated by modulating a PWM output of the processor and then filtering off the modulation frequency. The Atmegatron uses analogue circuitry in the form of a steep 3rd order Chebyshev filter to maintain the high end, while still filtering off the modulation frequency.
The Atmegtron’s software uses 2 loops to create it’s unique sound. One loop uses an interrupt to update the PWM output at audio frequencies. The other loop is slower and is used for everything else (MIDI input, process the wavetable, update LFOs, envelopes, arpeggiators etc). This unique synthesis method means that while the Atmegatron is clearly at home among classic Chiptune synthesizers, it also sounds highly individual.
The diagram below shows the wavetable processing chain. This is the structure of the Arduino code that is shipped in the Atmegatron, but this can be tweaked as much as the user desires and reuploaded using the Arduino development environment.

Thorn offers 3 oscillators that utilize spectral synthesis method. This gives you control over all harmonics involved into the generation process of your sound. The oscillator provides sets of spectral and real-time effects to shape harmonics further. Of course FM, RM, PWM, Hard Sync implemented too.