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

  1. Buttons - 3d printed (9)

  2. Chassis - 3d printed (1)

  3. On/Off switch (1)

  4. Teensy 3.2 (1)

  5. MicroSD Card (1)

  6. Audio/Wave Shield (1)

  7. Wires (many)

  8. Breadboard

  9. Soldering Iron

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

Beginner’s Guide to Teensy

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

Datasheets

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

Teensy USB Development Board

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

Launchpad MIDI: 4 Steps 

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

Comments:

The mixing of audio signals may prove to be challenges, but could likely be made easier by upgrading to a processor that can run linux and then use libraries for it. The ARM based teensy should have enough computational power to do the mixing, but I am not sure of the libraries available for it. (A teensy would be way cooler than a RasPi though!)

Posted by chorn4 at Oct 03, 2019 12:21

Great proposal. Very good background research.

Posted by fns2 at Oct 03, 2019 18:17