Inspiration
Main motivation for this challenge was our entusiashm for music and embeded programming. We also increased our knowledge about low-level PWM modulation and its application for creating musical notes.
What it does
It is a real-time synthetizer which can play music notes by buzzer. It has three songs saved inside memory and it can read MIDI signals from computer. User can use existing softwares for music production, for example FL Studio. Computer can both play music notes by itself and send midi notes to STM32 microcontroller which synthetizes sound for buzzer.
How we built it
First we set some timers for microcontroller and started creating frequency modulation for buzzer. We defined musical notes and tried playing some songs. Then we write software for recognization of MIDI commands from USB. We had to test notes whether it has the right pitch.
Challenges we ran into
Synthetization was always stopping for unknown reasons. It taked a lot of time to find what to do with it. We had to clear CNT register after each note to reset modulation. We also had to read signals from USB byte by byte because we couldn't find suitable library for MIDI.
Accomplishments that we're proud of
This hardware and software setup can be used for creating simple DIY musical instruments and understand how midi signals are working. User can create song in software and directly play melodies by external device.
What we learned
We learned how to modulate PWM signals for buzzer by STM32 and how midi signals look like in low-level programming.
What's next for BSH Technical Challenge
We could add loudspeaker and create smooth melodies which could sound much better.
Built With
- c
- patience
Log in or sign up for Devpost to join the conversation.