High Level Design

Program/Hardware Design



Appendix A: Code

Appendix B: Schematics

Appendix C: Parts Listing 

Appendix D: Specific Tasks




Xuemin Hang:

Marcel Xu:



Appendix D       



Done by Xuemin Hang

Done by Marcel Geyuan Xu


Write code for direct digital synthesis for audio output. Experiment with different schemes (using interrupts vs writing assembly loop in main).


Research on popular methods on digital synthesis, including the possibility of using a Direct Digital Synthesis (DDS) chip to produce most of the waveforms needed.


Write code for detecting pushbuttons (notes of the keyboard) such that the sound is sustained if the note is held.


Procurement of necessary parts such as the sample MCU from Atmel, the DDS chip from Analog Devices (which was not used eventually) and so on.  


Improve the music synthesis such that chords can be played. Experiment with different methods such as internal addition of digital output or external recombination of voltages.   


Experiment, using Matlab, different theoretical ratios of harmonics of flute, clarinet and trombone. Trial and error with equations for other instruments until the waveforms look like the sample waveshapes. 


Write code for TV display. Display the 2 sets of stave on the TV, with the top stave being in the treble range and the bottom in the bass range. Buttons pushed are displayed on the screen.    


Write code for creating wavetables for instrument timbre using equations. Instruments included are flute, clarinet, piccolo, oboe, horn, trombone, trumpet, plucked string and steel drum. A pure sine wave is used as the default waveform.


Design the two TV games such that they test the music player’s sight-reading ability and fulfill and educational purpose. Write code to implement the game.


Fine-tuning of musical instruments sounds by tweaking the harmonic equations and modulating the wave envelope. Since Marcel has been in the symphonic band for over 6 years, he could evaluate many instrument sounds with his ear.


Laid out the hardware for the keyboard pushbuttons. Wired the grounding supplies of the pushbuttons so that they may be used as a keyboard.


Laid out resistors for the video and audio DACS, as well as all other hardware except for the keyboard pushbuttons.


Design aesthetic packaging of the project. Make the whole mess of wires seems more pleasing to the sight.


Solder a replica of the STK500 board including ports A, B, C, D and the programming connection. Debug the solder connections when programming fails to execute. 



Write sections of the report and design the aesthetic of the website.


Wrote sections of the report. Created the website for the project and formatted the report on the webpage.