Seqs

Internet seqs with anonymous strangers

Henry Thiemann


Motivation

PiSeq

I had previously created a similar step sequencer for my computer (shown above), and while it was fun to use, it was difficult to show to people, and not really feasible for sharing since they would need to know how to build the code. I thought it would be a better idea replicate the sequencer's functionality on iOS, since it's much easier to distribute software on that platform. I also thought that a step sequencer would be a fun way for people to collaborate musically, since it's realatively easy to use. Because of its constraints, its difficult to make something that sounds bad.

Experiential Design

Menu

I wanted Seqs to be completely anonymous. My reasoning for that decision is that users would be less nervous about musical collaboration if they had anonymity. The menu screen simply shows 4 other random users, and selecting any of them starts a collaborative sequencer. If a user has been encountered previously, the frame around their icon will be green and the previous sequencer will be loaded again.

Seq

The sequencer consists of 4 instruments with 8 notes and 32 beats each. The beats are divided into 4 frames of 8 beats. There are 128 musical presets and 2 drum kits to choose from, and the user has control over bpm, scale, and the octave of each instrument. All of these settings are updated in real time on both users' phones. One feature that I carried over from my previous sequencer is the ability to copy notes from one frame of notes to others. This makes it possible to quickly lay a foundation for a beat, and then customize each frame individually.

Technical Details

Seqs is written using TheAmazingAudioEngine for sound and SpriteKit for graphics. TAAE provides access to an audio timing callback, making it possible for me to accurately time MIDI events, and it also has support for AudioUnits, to which I loaded presets from SoundFonts. SpriteKit provides a library of animations and object types, so I didn't have to think too much about the graphics, and I could focus on the design of Seqs instead.