Kelsey Chang (kelseyc5): ECE 120, Vincent McKibben (vmckib2): ECE 120
Introduction
Statement of Purpose
Our goal is to design a programmable device that simulates various instrumental sounds and music by pressing various buttons arranged in a 3x3 grid pattern.
Background Research
To create a MIDI Launchpad, loading audio is essential. In order to have simultaneous audio sources, the microcontroller must have enough memory to process the audio without having to significantly reduce the quality. In addition to this an sd card would be required to store each of the audio files (as well as allowing the device to be used without a computer potentially).
Because our project is music based, we have a wide range of options to choose from. Anything from the most simple circuit to extremely advanced/complicated systems. This exponential difficulty curve is the driving force of our project. With every challenge we overcome, we gain that much more knowledge in our ECE careers. Music also provides a source of entertainment making any advancement in our project a step closer to having a fun device to work with.
Our project is similar to some of the other music related projects done in the past. The primary difference is that our project is more generalized, rather than being restricted to one instrument, we essentially have a sound board allowing for a wide variety of options.
Design Details
Block Diagram / Flow Chart
System Overview
Buttons: analog input
Teensy 3.2: mixes multiple audio outputs, handles input and output processing
SD Card: stores audio files
Audio/Wave Shield: improves quality of audio and quantity of audio that can be played
Speaker: outputs sound
Computer: for programming
Parts
Buttons - 3d printed (9)
Chassis - 3d printed (1)
On/Off switch (1)
Teensy 3.2 (1)
MicroSD Card (1)
Audio/Wave Shield (1)
Wires (many)
Breadboard
Soldering Iron
LEDs
Possible Challenges
Everything about this project is difficult. The more research we do, the more we know that we don’t.
Polyphony audio
Memory management
Skill curve for programming in C-based arduino
Finding audio library
Potential wiring difficulties
References
Zait, A. (2019). A Beginner's Guide to Teensy. [online] circuito.io blog. Available at: https://www.circuito.io/blog/teensy-guide/ [Accessed 19 Sep. 2019].
K20 Sub Family Reference Manual
Pjrc.com. (2019). K20 Sub Family Reference Manual. [online] Available at: https://www.pjrc.com/teensy/K20P64M72SF1RM.pdf [Accessed 19 Sep. 2019].
Pjrc.com. (2019). Datasheets for chips used in Teensy. [online] Available at: https://www.pjrc.com/teensy/datasheets.html [Accessed 19 Sep. 2019].
This Awesome DIY Polyphonic Synth Makes The Most of Teensy & A 3D Printer
Sethi, R. (2019). This Awesome DIY Polyphonic Synth Was Made With Teensy & A 3D Printer. [online] Ask.audio. Available at: https://ask.audio/articles/this-awesome-diy-polyphonic-synth-makes-the-most-of-teensy-a-3d-printer [Accessed 19 Sep. 2019].
Building a USB Midi Controller Using Teensy
Lacey, L. (2019). Building a Simple DIY USB MIDI Controller using Teensy. [online] Ask.audio. Available at: https://ask.audio/articles/how-to-build-a-simple-diy-usb-midi-controller-using-teensy [Accessed 19 Sep. 2019].
Pjrc.com. (2019). Teensy USB Development Board. [online] Available at: https://www.pjrc.com/store/teensy32.html [Accessed 19 Sep. 2019].
Arduino Audio Output: 10 Steps (with Pictures)
Instructables.com. (2019). [online] Available at: https://www.instructables.com/id/Arduino-Audio-Output/ [Accessed 19 Sep. 2019].
Instructables.com. (n.d.). Launchpad MIDI. [online] Available at: https://www.instructables.com/id/Launchpad-MIDI/ [Accessed 19 Sep. 2019].
ELECTRONIC PIANO USING PIC MICROCONTROLLER (PIC18F4550)
PIC Microcontroller. (2019). ELECTRONIC PIANO USING PIC MICROCONTROLLER (PIC18F4550). [online] Available at: https://pic-microcontroller.com/electronic-piano-using-pic-microcontroller-pic18f4550/ [Accessed 19 Sep. 2019].
Google Code Archive - Long-term storage for Google Code Project Hosting.
Code.google.com. (n.d.). [online] Available at: https://code.google.com/archive/p/rogue-code/wikis/ToneLibraryDocumentation.wiki [Accessed 19 Sep. 2019].