Project

# Title Team Members TA Documents Sponsor
59 Virtual Synthesizer using MIDI Keyboard
Connor Barker
Dylan Pokorny
Patrick Ptasznik
Eric Tang proposal1.pdf
# Virtual Synthesizer using MIDI Keyboard

Team Members:
- Connor Barker (cbarker4)
- Patrick Ptasznik (pptas2)
- Dylan Pokorny (dylangp2)

# Problem
The high cost of professional-grade virtual studio technology (VSTs) and digital audio workstations (DAWs) presents a significant barrier to entry for aspiring music producers. Many individuals, specifically those just starting out, lack the financial resources to gather the necessary equipment, limiting their ability to explore the world of music. This project aims to address this problem by creating an affordable, standalone hardware synthesizer that replicates VST functionality, making music production more accessible for the average music enthusiast.


# Solution
This project aims to create a low-cost hardware synthesizer, making music production accessible to a wider audience. The design centers around an ESP32-S3 microcontroller which acts as the brain, which processes input from a MIDI keyboard to generate sounds through speakers. Power is supplied through a wall adapter and a buck converter to ensure proper voltage levels for all components. The generated audio is then outputted to a speaker for real-time sound production. A user interface consisting of a potentiometer for volume control and buttons for instrument selection along with an LCD screen for displaying information such as wave type allows for intuitive interaction. This standalone device bypasses the need for a computer and complex software, significantly reducing the financial cost.



# Solution Components
## Subsystem 1: Microcontroller / Software (ESP32)
We plan on using the ESP32-S3 microcontroller because it has a few main features that greatly help our project. First, it has USB hosting that can turn some of its GPIO pins into pins that support reading directly from our midi keyboard’s usb port with a USB adapter. Additionally, it has multiple I2C ports for us to connect to the LCD screen as well as multiple I2S ports that can output audio data to the speaker. Finally, it is powerful with more cores than some of its counterparts that can allow multiple processes to be running when looking for user input and generating the sound wave (sine, saw, etc).

## Subsystem 2: Power (wall outlet)
We will draw power from an AC 120V 60Hz wall outlet using an adapter to convert it to DC 5V. The DC 5V supply will power the LCD screen and the MIDI keyboard through a USB-A adapter. We will use a buck converter to step down the voltage to 3.3V for use with the microcontroller and speakers.
Wall outlet adapter 120V 60Hz AC to 5V DC
Buck converter components
Transistors
Diode
Capacitors
Inductors

## Subsystem 3: Speakers

We plan on using a 4-Ohm speaker with a power range between 3-5 Watts in order to have sufficient sound quality while limiting power demand. We have listed some example options below at different ranges of power.


## Subsystem 4: User Control

Volume control will be handled by a potentiometer that connects to a GPIO pin on the ESP that will control the output signal in software. Additionally, we will use simple mechanical buttons connected to GPIO pins so the user can cycle through available instruments.


## Subsystem 5: LCD screen

We will display the name of the sound currently selected on an LCD screen controlled by the microcontroller through I2C protocol. The display will visually assist users in selecting the sound they want to play.



## Subsystem 6: MIDI Keyboard

We plan on using the MIDIPLUS AKM320 as our piano input that outputs midi data via USB type A. We will have a USB-A connector that splits into VCC, D+ , D-, and GND so that we can use the USB host mode to then connect to the ESP32.


# Criterion For Success


The synthesizer will be capable of switching between several sounds of different waveforms that are clearly distinguishable.

Volume control potentiometer can raise and lower the volume of speaker output in a continuous manner.

Supports multiple notes being played at the same time (Chords).

Supports a range of at least 3 octaves of notes to be output on speaker.

Sound features must be adjustable in real time, as the synthesizer is in use.



# Resources & Citations

**Microcontroller / Software (ESP32)**:
https://www.amazon.com/Espressif-ESP32-DevKitC-VE-Development-Board/dp/B087TNPQCV?source=ps-sl-shoppingads-lpcontext&ref_=fplfs&smid=A33XZ36WFNH796&gQT=2&th=1

LCD Screen: https://www.amazon.com/GeeekPi-Character-Backlight-Raspberry-Electrical/dp/B07S7PJYM6?crid=3NFE1JY7T1MDW&dib=eyJ2IjoiMSJ9.3LG-rdQyBtOaCRNH2P5W1gbZ0fmHmFZQ9pHUMksSeyRTMIO-_dFWjwM5dELoTud6V_NowIFGdGGkOcVWORnhcPIu2jGzKywg_-0sluGTvejwLetYOb44z6zOB2wjYhh4r2w7umgCugyzyDLOEyJa7JYFfm7lbD0HnLQN4wgbOWSkLDwhAqS8Z-__CkpfdozsjuaDIEInA5Z64L0Wzp20CMMDfx2oz_9hkgdhBOMHWaebiTp2HxdOnCEikWO_XFQDGeQrIvo6K64-ZDbe0OmUf8RzQnFAAFKPXG6WEq2TYUoh3gfP9mySKIdCHB3rw4Zw3ff-yNT244T6Jo4X5fq-mbNkaL08CNzNgrmgK3ZBlu8.Pi6n6hRDZvfI_iccKXpOIpZVY0Q-vsD9BjD9otaEsJk&dib_tag=se&keywords=lcd+screen+i2s&qid=1738196187&s=electronics&sprefix=lcd+screen+i2%2Celectronics%2C142&sr=1-4

Speaker Options:
https://www.amazon.com/Gikfun-Speaker-Stereo-Loudspeaker-Arduino/dp/B01CHYIU26/ref=sr_1_5?crid=H3YZHZ7EW1LD&dib=eyJ2IjoiMSJ9.JxfX0DtoMc3EK4kMjWnChI0FreS6wWoy9zEvJmvhcjj-UTOBNjy4oEsL_4rq1b3hge0U0YyboxhnX-h-FQe3nFRhVbOICJDh88talb83w61MyBHqj9GONi-uylmW7PQ71P_gCSX2skcK4eX_s2fvjz5qMBYPI5kpEDOHIjXlPpaxd1TALGcSZdGKOupGIm7FhsglNMLOKX_jMSx3Y_OCDbvstR2fvILpAWEHm5uS7B0.XcpkmIU-GtrD8iRgeiyV2xOXJEMB9xLfhKBddBAjjQs&dib_tag=se&keywords=circuit+loudspeaker&qid=1738196030&sprefix=circuit+loudspeake%2Caps%2C109&sr=8-5

https://www.amazon.com/Gikfun-Speaker-Loudspeaker-Arduino-Replacement/dp/B081169PC5/ref=sr_1_1?crid=H3YZHZ7EW1LD&dib=eyJ2IjoiMSJ9.JxfX0DtoMc3EK4kMjWnChI0FreS6wWoy9zEvJmvhcjj-UTOBNjy4oEsL_4rq1b3hge0U0YyboxhnX-h-FQe3nFRhVbOICJDh88talb83w61MyBHqj9GONi-uylmW7PQ71P_gCSX2skcK4eX_s2fvjz5qMBYPI5kpEDOHIjXlPpaxd1TALGcSZdGKOupGIm7FhsglNMLOKX_jMSx3Y_OCDbvstR2fvILpAWEHm5uS7B0.XcpkmIU-GtrD8iRgeiyV2xOXJEMB9xLfhKBddBAjjQs&dib_tag=se&keywords=circuit+loudspeaker&qid=1738196030&sprefix=circuit+loudspeake%2Caps%2C109&sr=8-1

Power Adapter, 120V 60 Hz AC to 5V DC 15W:
https://www.amazon.com/MTDZKJG-Adapter-100V-240V-Transformer-Security/dp/B0BZP65GRW/ref=sr_1_8?dib=eyJ2IjoiMSJ9.lt4Dgb27bTajkIeDcd8swsiOjzJ1W2QmIfdBQ7_ahaAwoZQW7WZT5-8AAq5eO-U3gPg7JLb7gG5ApYMsSGhn1URvtswbMboxyXNguxbZp9x8vo-XKVhFeYR718fDVvqt5pq8Fm69GqbQcccbft7M2FIN5mx-wSvo81yy8O-vkdiITNwAqmRbwcdA-aLqEeghpkxNBbo6j4YeaQV-XAnYrKYwaAvx15HuXzDKm35MaTMQN0lhteHusMF8TQp_oZvaKlfOphY4AJMI20KQTlm8nyCyNAt7phcz6irY1BdM-99ZCwEv2LpjeK-jcJOBBF26QSp5H0I9qG4lq_Mb6l-NVVxCE_5YrAUNsBm5j_fXqy0.YoKiwCFxh_6txGCrj5XQvP6w7R17ZPkm87osANvsZfw&dib_tag=se&keywords=120v+to+5v&qid=1738197561&s=electronics&sr=1-8


MIDI Keyboard:
https://www.amazon.com/midiplus-32-Key-Midi-Controller-AKM320/dp/B00VHKMK64/ref=sr_1_1?crid=19Z5UVHJGE6MO&dib=eyJ2IjoiMSJ9.B3fOhHaP4O1-06iJF-1ObLtOnDzngOUeP1gjPnLKux8F-oCAti98qP5_9hxSh3xXi34fWhRQLeZFHMQQtj_HZiJxdDVbdczE6f6u6-TvAaCz6bvXD1t2vbNnFTN-Nf2NWRaVr5BM8IWNMJDoqouDdxHyRDn9abehbUR-an58-oj5K5mOA1opEmGjvoHeit2b04v9ehE0842C8DKo0yppB4qpp3icjy5IgsC1RDlcbvXs_GCHzerrx2XiPcJwtzhOk5-6MWAZ8YB0vf7lO62AhQQJpIF0Vcm019Jpt_I3D6bAR2DTWmNdikYfCFw4z-5Kb9EcRF49MTHNKLxTwHV0zzqfnjJd2pOaz5LzexPNCbjTz3b32f9KCotyeP5L_s5lHni3peR32R6jAi2IWb24NM304vJ0_cjZLNlbY-uAb_2cYIluJ7ljKLcFs6-q1_P9.2k1JoRB3bVdFtLBBRn1p1PAaxmC4y8WTYLLVdzy9kKA&dib_tag=se&keywords=midiplus%2Bakm320%2Busb%2Bmidi%2Bkeyboard%2Bcontroller%2C%2Bblack%2C%2B32-key&qid=1738199055&sprefix=%2Caps%2C102&sr=8-1&th=1

USB 2.0 Type A Female SMT Connector:
https://www.mouser.com/ProductDetail/TE-Connectivity/292303-7?qs=e6gk%2FTaAuqWZCg5WWmtijA%3D%3D

UV Sensor and Alert System - Skin Protection

Liz Boehning, Gavin Chan, Jimmy Huh

UV Sensor and Alert System - Skin Protection

Featured Project

Team Members:

- Elizabeth Boehning (elb5)

- Gavin Chan (gavintc2)

- Jimmy Huh (yeaho2)

# Problem

Too much sun exposure can lead to sunburn and an increased risk of skin cancer. Without active and mindful monitoring, it can be difficult to tell how much sun exposure one is getting and when one needs to seek protection from the sun, such as applying sunscreen or getting into shady areas. This is even more of an issue for those with fair skin, but also can be applicable to prevent skin damage for everyone, specifically for those who spend a lot of time outside for work (construction) or leisure activities (runners, outdoor athletes).

# Solution

Our solution is to create a wristband that tracks UV exposure and alerts the user to reapply sunscreen or seek shade to prevent skin damage. By creating a device that tracks intensity and exposure to harmful UV light from the sun, the user can limit their time in the sun (especially during periods of increased UV exposure) and apply sunscreen or seek shade when necessary, without the need of manually tracking how long the user is exposed to sunlight. By doing so, the short-term risk of sunburn and long-term risk of skin cancer is decreased.

The sensors/wristbands that we have seen only provide feedback in the sense of color changing once a certain exposure limit has been reached. For our device, we would like to also input user feedback to actively alert the user repeatedly to ensure safe extended sun exposure.

# Solution Components

## Subsystem 1 - Sensor Interface

This subsystem contains the UV sensors. There are two types of UV wavelengths that are damaging to human skin and reach the surface of Earth: UV-A and UV-B. Therefore, this subsystem will contain two sensors to measure each of those wavelengths and output a voltage for the MCU subsystem to interpret as energy intensity. The following sensors will be used:

- GUVA-T21GH - https://www.digikey.com/en/products/detail/genicom-co-ltd/GUVA-T21GH/10474931

- GUVB-T21GH - https://www.digikey.com/en/products/detail/genicom-co-ltd/GUVB-T21GH/10474933

## Subsystem 2 - MCU

This subsystem will include a microcontroller for controlling the device. It will take input from the sensor interface, interpret the input as energy intensity, and track how long the sensor is exposed to UV. When applicable, the MCU will output signals to the User Interface subsystem to notify the user to take action for sun exposure and will input signals from the User Interface subsystem if the user has put on sunscreen.

## Subsystem 3 - Power

This subsystem will provide power to the system through a rechargeable, lithium-ion battery, and a switching boost converter for the rest of the system. This section will require some consultation to ensure the best choice is made for our device.

## Subsystem 4 - User Interface

This subsystem will provide feedback to the user and accept feedback from the user. Once the user has been exposed to significant UV light, this subsystem will use a vibration motor to vibrate and notify the user to put on more sunscreen or get into the shade. Once they have done so, they can press a button to notify the system that they have put on more sunscreen, which will be sent as an output to the MCU subsystem.

We are looking into using one of the following vibration motors:

- TEK002 - https://www.digikey.com/en/products/detail/sparkfun-electronics/DEV-11008/5768371

- DEV-11008 - https://www.digikey.com/en/products/detail/pimoroni-ltd/TEK002/7933302

# Criterion For Success

- Last at least 16 hours on battery power

- Accurately measures amount of time and intensity of harmful UV light

- Notifies user of sustained UV exposure (vibration motor) and resets exposure timer if more sunscreen is applied (button is pressed)