I've been listening to the Jo9hn Cena theme too much lately, so I thought I'd share this masterpiece with other people who have probably heard it before (and may already be sick of it).

What it does

It generates a grid of 2x2 to 5x5 squares that you can click as possible play buttons. Only one of them will actually play music, while the others won't really do anything. However, if you click the right button, it will play the John Cena theme on one of pygame's 4 mixer channels. After a few iterations, it will stop all audio on all channels and play Never Gonna Give You Up.

How I built it

I used pygame to make audio playback easier, and I used a graphics library ( to make the player.

Challenges I ran into

I had to learn and import a few python libraries I'd never used before, though once I got everything running, it wasn't too bad.

Accomplishments that I'm proud of

I started out with wanting to make a tile-matching game and it became this, so I'm proud of the progression of the idea.

What I learned

APIs are amazing.

What's next for ShitPlayer

Make the audio choppy by adding a worker thread that will randomly pause and play audio on one of the channels every few hundredths of a second. I'm not sure if pygame will be responsive enough to do this smoothly, but it's worth a try maybe?

Built With

Share this project: