Paul Campbell

Creating a Personal Conference Experience at Reject.JS

The tools to put together a music experience at low-to-no cost are better than they’ve ever been. If you’re interested in recreating any of the article below at your own event, here’s some quick links to the GarageBand file, the source code for the custom presentation tool, and video and audio recordings of the performance:

After my first few conference talks, I got the idea to make a visual gag about all of these rock-star developers that I kept hearing about. I decided that I wanted to do a talk that I would end up playing a song. I hoped that I could use some song-writing and performance experience from my teenage years to create a memorable experience for the audience.

Three years ago, after giving a talk about some kind of JavaScript library or other, I sat down with a guitar and sang a song (turn down the volume) that I’d written about the conference I was speaking at: Reject.JS. The following year, I reprised my role, a little less out of tune. Last year, I played three songs, including a song about procrastinating about writing a song.

It’s kind of embarrassing to look back at the videos, but there’s also a lot of pride: every one of the songs and performances were unique to the event that they were peformed at. It’s also a lot of fun.

This year, I wanted to do something different. The production value of one slightly-off-key man and a guitar/ukulele is pretty low. People always loved it, but I really wanted to try something a bit more advanced. It was also a lot of pressure while on-stage. My main question was whether we could create an experience that was less pressure, but higher production values.

I’d had the idea to do something a little bit more electronic. As it happens, my timing was perfect. Apple’s GarageBand version 10 includes some of best-sounding samples for their electronic instruments that I’ve ever heard in a … wait for it … €5 upgrade.

Using my Akai LPK25 midi keyboard, with GarageBand I put together a 20 second sample. Working the evening before the event and then all during the day, I was able to put together a mix that sounded very convincing.

This year, I was joined by Jan Krutisch, Jan Monschke and Jed Schmidt. All three have successfully combined JavaScript and music in some kind of creative way in the past, so we decided to form a band, by the name of The Semicolons.

On the day of the conference, I grabbed Jed and he recorded the vocal in just 3 takes via the microphone on my Bose MIE2i Headphones. I had a backup vocal ready if I needed it, but it was great to have Jed’s vocal. We turned on autotune to the max to add a nice robotic effect.

Since Jan and Jan are experienced with the webaudio API, we also wanted to involve that as much as possible. It was slightly disappointing that we didn’t get any webaudio music, but the entire performance was controlled via the webaudio API, using a custom presentation tool that Jan and Jan put together, also on the day of the conference. The tool included the ability to cue the backing track, play sound effects and animations at will by typing commands directly in to the browser, and, crucially, to display the lyrics, karaoke style, in time with the music. JavaScript played a huge part in the performance.

The whole thing created what was at the very least a memorable performance, and at the optimistic most a catchy tune and a silly but fun show that was completely personal to Reject.JS. We did this at virtually no cost to ourselves using equipment that’s in no way specialised to music production. And we did it in one day.