I have, with some assistance from Jarek, translated the AT90S8535 code in to
ATMEGA16 code and reformatted the code for easier reading.
The latter has also been modified to allow it to be run under AVR-Studio 4.
Readers are invited to add further comments to the code and email them back
so that other readers can understand the program better.
Also readers are invited to submit their examples of enhancements to the program.

The code has now also been updated to run on an ATMEGA32 running at 16MHz

27/02/2002 AT90S8535 code release
16/04/2005

Adjusted code to support ATMEGA16 and AVR-Studio 4
Translated text in to English

19/04/2005 Added code to reduce the Keyboard Scan period from 32uS to 100mS
21/04/2005 Extended wait time between `set & read' in Keyboard Scan
05/05/2005 Added support for MIDI Address
0 = Recognise all MIDI addresses, 1-15 = Recognise specified MIDI Address
14/06/2005 Added software control of JTAG function
21/06/2005 Adjusted Timer2 initialisation to calibrate fundamental DCO frequency
23/06/2005 Replaced ADCSR with ADCSRA and UBRR with UBRRL
to support Build 411 of AVR Studio 4
29/09/2005

Enabled MODWHEEL function
Removed `skip' on WAIT_20US

12/12/2006 Added ATMEGA32/16MHz version

Download latest (ASM) source code for ATMEGA16-8

Download latest (ASM) source code for ATMEGA32-16

Please note that this code is written for AVR Studio 4 Build 411

Fuses, Lock Bits and settings

ATMEGA16-8 HEX ATMEGA32-16 HEX

Below are some Q&As that have been posted regarding the AVRSYNTH

In the Filter module what is the function of the DISTORTION (On/Off) switch It's a simple "ring modulator". The outputs of both DCOs are XORed.
In the LFO module what is the function of the LFO MODE switch? The "regular" mode needs no explanation.
In the "random" mode:
- if you select the square wave, you get a "sample & hold" LFO waveform,
- if you select the triangle wave, you get a "random triangle" LFO
waveform
In the MIDI input module what is RANGE (Up/Down) switch? A general transpose switch (one octave down) for both DCOs
In the DCO modules what is the function of the RANGE (Up/Down) switch? Individual transpose switches (one octave down) for each DCO
MIDI Range and DCO Range switch combinations If you use the DCO Range switch the MIDI Rangeswitch you can transpose down two octaves and up none.

What arethe functions of the various switches:-

DCF KBD TRACK off=0%, on=100%
LFO WAVE off=triangle, on=square
LFO DEST destination: off=oscillators, on=filter
ENV MODE off=A-R, on=A-S-R (sustain level = 100%)
DCA MODE off=gate, on=envelope controlled
DCO B oscillator B off/on
WAVE B oscillator waveform: off=saw, on=squ
WAVE A oscillator waveform: off=saw, on=squ
RANGE B oscillator transpose: off=down, on=up
RANGE A oscillator transpose: off=down, on=up
OCTAVE transpose for both oscillators: off=down, on=up
ENV LOOP off=one shot, on=repeating (if a key is held down)
LFO MODE off=regular, on=random
LFO KBD SYNC off=free run, on=restart on each key pressing
Email:  elby_designs@ozemail.com.au
© Copyright 2000. All rights reserved.     Revised: April 5, 2010