GitHub's visualizations of repositories are pretty cool. Since commits are laid out in time it made sense to use it to sequence sound.

What it does

It takes a GitHub repository (username/reponame) and plays a drum track based on the commit history of the master branch. When the commits are more frequent it speeds up and vice-versa.

How I built it

I grab data from GitHub's repository API, rescale the timing to make it somewhat drum-like and used the WebAudio API to sequence drum samples.

Challenges I ran into

One major problem is that most repositories follow the pattern of big spikes of activity and loads of idle time. That makes the tracks very boring to listen to. I transformed the timings so that it never speeds up or slows down too much.

Accomplishments that I'm proud of

Wrangling the timing in WebAudio is something completely new to me, so I'm happy to have learned more about it. Finding the right parameters for solution to the above problem was also pretty great!

What I learned

Dealing with browser-based audio and the awesome GitHub API.

What's next for DrumHub

I'm taking it on tour.

Built With

Share this project: