HOME FEATURES BACKGROUND DESIGN RESULTS

Appendix A: Publicity Acknowledgements

The group approves this report for inclusion on the course website.

The group approves the video for inclusion on the course youtube channel.

Appendix B: Code

https://github.com/Samikshahiranandani0512/ece4760_final_project

Appendix C: Circuit Diagram

Appendix D: Contributions

Samiksha

  • Adapting FM synthesis code
  • Creating physical keyboard
  • Code for detecting mux inputs
  • Code for detecting button presses
  • Code for parsing MIDI files
  • Cod for playing songs

Ben

  • Adapting FM synthesis code
  • Creating physical keyboard
  • Code for detecting mux inputs
  • Wiring of keys, buttons
  • Tuning instruments (harp, bells)

Appendix E: DAC Datasheet

Appendix F: Multiplexer Datasheet

Appendix G: RP2040 Datasheet

Appendix H: RP2040 C SDK

Additional References

FM synthesis code reference: https://people.ece.cornell.edu/land/courses/ece4760/RP2040/C_SDK_DSP/FM_menu_joystick/vga16_joy_FM_DAC.c

MUX Datasheet:

DAC Datasheet: https://vanhunteradams.com/Pico/Cricket/DAC.pdf

Background FM Synthesis Information: https://people.ece.cornell.edu/land/courses/ece4760/PIC32/index_sound_synth.html

MIDI notes: https://www.inspiredacoustics.com/en/MIDI_note_numbers_and_center_frequencies

MIDO python library: https://mido.readthedocs.io/en/latest/

CSnake python library: https://pypi.org/project/csnake/

ECE 4760 Course Website Materials: https://ece4760.github.io/

Template to start website: https://www.w3schools.com/w3css/tryit.asp?filename=tryw3css_templates_band&stacked=h

ADC read example: https://raspberrypi.github.io/pico-sdk-doxygen/group__hardware__adc.html#adc_example