1 of 10

Tap In, Zone Out Sound Machine

Diya Mahapatra

x

2 of 10

Showcase

3 of 10

Description

The Rain Sound Machine is an interactive audiovisual installation that combines physical input from an Arduino-controlled button with dynamic digital visuals and ambient sounds.

When the button is pressed, a rain sound effect begins to play alongside a calming animated window scene filled with falling raindrops, a cozy cat, and atmospheric steam rising from a cup. Players are challenged to maintain focus by holding the button for at least 15 seconds, increasing their "Focus Score" with each passing second. If they succeed, they set a new personal streak; if they release the button too soon, the screen shakes dramatically to signal a break in concentration and makes a loud noise.

This project combines hardware with soothing digital environments to create a "sound machine" experience that rewards mindfulness and helps focus!

X

Perfect for anyone who needs a moment to get grounded while still being engaged.

4 of 10

My Inspiration

This project came from a very real need which is that I get distracted easily, and I wanted to make something that could bring me back to the present. The idea of pressing and holding a button felt grounding, almost like an anchor, so I built around that. I didn’t want it to be just a passive sound machine and I wanted it to feel interactive and intentional. Rain has always been a background noise that helps me focus, so I paired it with a quiet animated scene that changes based on how long I stay present and it also helped because I created that for my generative art piece!. The goal wasn’t just to make something calming, but something that subtly challenges you to stay still and engaged even if just for 15 seconds.

x

5 of 10

First Design

My first design (after the physical one wasn’t working very well but I didn’t document that much) was just a build upon my generative art piece and I wanted to gamify a bit so I had a streak on the top left but I didn’t exactly know what I wanted to game to be I just had an idea and went with it here. I also wanted to keep the rain as streaks as well.

x

6 of 10

Second Design

My second iteration didn’t have sound or my finalized gamifying concept, but it did induce rain everytime I pressed the button my arduino set up. I didn’t exactly know how I wanted to code the streak part so I let it iterate every time I pressed the button for now but there wasn’t much interactivity with it. So, in this iteration, the focus time would go up everytime I pressed the button but it wouldn’t register long-pressing it.

x

7 of 10

Final Design

The finalized design consisted of a better gamified system including the best streak and and the focus score going up as you press the button. Additionally, the rain sounds game through as well as a very loud buzzer noise when you lost your streak, but no sound played when you get a new high score (as a reward, since the buzzing noise is very annoying).

The goal of this game is to better lock in on your work for as long as you are able to and this game should motivate you to do just that!

x

8 of 10

Final Video!

x

9 of 10

Conclusion

This project was way more complicated than I expected. I started off trying to make a physical sound machine using a motor and cup of rice, but after a lot of trial and error, I realized I didn’t have the right materials or setup (or time) to pull it off. Even once I switched to using a button, getting the serial connection between Arduino and p5.js to work properly was another huge challenge, especially on macOS where port names and serial libraries were confusing.

On top of that, I had to merge everything into one program, visuals, sound, serial input, and game logic, and debug across multiple files. There were moments where it felt like nothing was working, and I kept breaking something new every time I fixed something else. But slowly, I got it all to work: pressing the button starts the rain visuals, plays a calming sound loop, and tracks how long you stay focused. The game now reliably runs and resets cleanly, which felt like a big win after all the setbacks.

Now that everything’s running, I’m proud of how it turned out! I learned a lot about serial communication, syncing visuals with sound, and debugging in p5.js. I also realized that physical computing isn’t always about motors and sensors and it can be about how a single button can ground someone in the moment. Going forward, I’d like to keep building interactive pieces like this, not necessarily on this project because I am where I want the project to be for now, but with more planning upfront and more time set aside for testing.

x

10 of 10

x