High Level Design

Program/Hardware Design



Appendix A: Code

Appendix B: Schematics

Appendix C: Parts Listing 

Appendix D: Specific Tasks




Xuemin Hang:

Marcel Xu:





How our Results met our Expectations

The final product we developed way surpassed our expectations. We not only fulfilled our wild-eyed goals in the proposal, we also managed to add more features than we imagined. The features included the modulation of waves to give the bell effect in brass instruments (the metallic vibration and the sonority), and the slightly raspy sound of plucked strings. This was possible only after extensive research on the internet about music instrument waveforms and modulation, as well as after discussing some of our fledging ideas with Professor Land.

One thing we would choose to do differently next time is to actually generate a unique wavetable for every octave for a specific instrument. This is because I realized that for any instrument, the proportion of harmonics in the timber changes as the frequency changes. Thus, a wavetable generated from a flute wave sample at 220Hz will not sound like a flute at 440Hz. This applies to all other instruments as well, including the piano, strings and brass. Thus, it would be beneficial to sample an instrument waveform for a note in every octave and use that to form the wavetable for that particular octave.   


Conforming to Applicable Standards

We adhered to the RS232 standard by using a baud rate of up to 9600bps, by using the correct plugs and by transmitting information only within the allowed distance of 15 meters.

However, just as in ECE 476 lab 4, we did not fully conform to the NTSC standard as we did not interlace the full frame.


Intellectual Property Considerations

The only segments of code we used that was not written by us are the “video_pt”, “video_putchar”, “video_puts”, “video_smallchar”, “video_putsmalls”, “video_line”, “video_set” functions and the tim1_cmpA ISR, provided by Professor Land for ECE 476 lab 4.

All other code, including the wavetable synthesis, was written by us. The design of the project was also our own.

We did not use code in the public domain, nor did we reverse-engineer an existing design. We therefore do not have patent/ trademark issues to deal with. The only sample part we used in the project was the Atmel MEGA32 chip. This was provided without the need to sign a non-disclosure.

There are probably no opportunities to patent the project since wavetable synthesis is widely used in sound cards today. There are also many kinds of “music teacher” software that are similar to our video game.


Ethical Considerations with respect to the IEEE Code of Ethics

1.      to accept responsibility in making engineering decisions consistent with the safety, health and welfare of the public, and to disclose promptly factors that might endanger the public or the environment

Our project design is safe to be used, since we have covered up all the wires, and there are no endangering factors that need to be disclosed.

2.      to reject bribery in all its forms

No one tried to bribe us in this project. We would not have been bribed anyway.

3.      to maintain and improve our technical competence and to undertake technological tasks for others only if qualified by training or experience, or after full disclosure of pertinent limitations

We greatly gained technical competence in doing this project. We improved our proficiency not only in embedded C, but also in assembly language. We also learnt important lessons about soldering hardware.

4.      to seek, accept, and offer honest criticism of technical work, to acknowledge and correct errors, and to credit properly the contributions of others

We fairly sought and accepted honest criticism of our technical work, and acknowledged and corrected our errors. This is especially applicable to the situations in which we consulted Professor Land for help, and he quickly pointed out the flaws in our algorithm. We humbly accepted his advice, and went on to seek deeper understanding of our mistakes. In our listing (Appendix D) of the specific tasks carried out by each group member, we also credited properly the contributions of each group member.

5.      to treat fairly all persons regardless of such factors as race, religion, gender, disability, age, or national origin

When other groups approached us to help them in any way, we did not discriminate against them just because they were not of the same race, religion, gender, disability, age, or national origin as us.