|
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 |
|