Waking up is a drag. Leaving a comfy bed can be a challenge, especially when you awaken to the same mocking tone of your usual alarm. Our project OVERCLOCK, uses procedural audio generation, to create a unique alarm sound every morning.
Inspiration
Inspired by the generative music of Steve Reich, and the dread of hearing your alarm tone during the day.
What it does
OVERCLOCK uses a python script to draw the time on on a large LED display (in a custom font designed for this project). An alarm triggers a puredata patch which creates 4 arbitrary waveforms using additive synthesis. Each of these waveforms is then used as either a carrier or modulator in a frequency modulation matrix. A metronome is then started which generates a unique sequence of MIDI messages, controlling the synth.
Users can set the alarm using large buttons on the side, and stop the alarm with the same controls.
How we built it
Early on, our team of three broke up into distinct tasks. Hugh wrote the procedural alarm, Rodney wrote the alarm clock software, and Jacob put together the electronics and reverse engineered a speaker/amp circuit so the alarm would be more audible.
Challenges we ran into
PD list processing is a big part of how the software is able to generate harmonics for its oscillators. As such, list processing posed the most significant issues in keeping the program running in real time, and allowing for an intuitive signal flow.
Early on, we were faced with debugging a broken amp/speaker circuit, which arbitrarily distorted audio. After several hours dissecting the chip, we realized it was a lost cause and decided to use a new speaker and circuit, which Jacob and Rodney dissected to be used in OVERCLOCK.
The Python software is required to open and manage the execution of a number of sub-processes necessary to generate sound. Interfacing with these was very difficult, due to quirks of permissions, and resource access based on user accounts.
The font formats used by the python LED matrix controller are exclusives BDF, which is quite outdated. A few hours of research later, we discovered a workaround, by editing a font of the incorrect dimensions, and overshooting the bounding boxes for the letters. This allowed us to 1. create a BDF font 2. Size it appropriately
Accomplishments that we are proud of
OVERCLOCK marks a lot of firsts for this group. We are proud to be presenting OVERCLOCK as our first endeavor in procedural generation, audio programming, node network programming, audio hardware, and LED matrix technology.
What we learned
We learned about the procedural paradigm, signal flow, and audio amp circuits. Additionally, a lot of the tips and tricks to working with raspberry pi, especially with headless execution.
What's next for OVERCLOCK
OVERCLOCK is an awesome project, and we hope to do additional work on the audio engine, and to rethink its form factor. We believe this alarm is a unique idea, and worth pursuing, and finalizing.
Built With
- buttons
- puredata
- python
- raspberry-pi

Log in or sign up for Devpost to join the conversation.