Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

ATMega328 MIDI Synthesizer

A six-tone synthesizer for an Atmel ATMega328P (commonly used for the Arduino UNO) that was created as a byproduct of an audio workshop for the FabLab Bayreuth. Right now it can produce high-quality sines (or whatever you put in the waveform array) on six channels and understands a limited subset of the MIDI protocol (note on and note off). There's also an option for incremental volume adjustments when the volume changes.

The interrupt routine that handles most of the heavy lifting is written with inline asm to enable using six channels, and even then it might not be fast enough if all six are running at rather high frequencies, so this is an interesting project to learn about optimizations. Tests have shown that usually about 90% of the processing power is spent on the interrupt, but with occasional peaks, depending on the song, going up to 95%. :)

Contributing

Feel free to make a pull request if you think you've something neat to add. :)

About

No description, website, or topics provided.

Resources

License

Releases

No releases published

Packages

No packages published