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 |