Inspiration
A DJ deck is an instrument you play with your hands. We wanted to bring that same physical interaction to a phone. The iPhone Duo's fold gave us a new control to work with: the shape of the device
Pulse turns that idea into a pocket DJ deck. Open it, load a sound, and bend the phone to change what you hear.
What it does
Pulse combines a two-deck mixer with a playable sampler. In its folded, laptop-like pose, the controls sit on one half while animated waveforms occupy the other.
- Mix two tracks with independent playback, channel levels, three-band EQ, and beat sync.
- Scratch the turntables and set hot cues to jump back to moments in a track.
- Record through the microphone, import audio, or start with the included sounds.
- Play samples on a 4-by-4 pad grid, using slices or pitched notes.
- Map the fold to pitch, time stretching, filtering, gritty textures, or scrubbing through a sound.
- Freeze, reverse, and trim samples while watching the waveform respond.
How we built it
Pulse is a native Swift app (built with Bitrig!) with a SwiftUI interface. It uses ArrangementView to place the performance controls and visualizer across the Duo's changing layout, plus onHingeChange and DeviceHinge readings to turn the fold angle into audio controls.
AVFoundation and AVAudioEngine handle playback, recording, mixing, and effects. Custom audio source nodes power the turntables and granular playback, while a beat detector estimates tempo and beat position for synchronization. Metal shaders render the animated waveform ribbons. Hot cues and settings persist locally.
Challenges we ran into
The central challenge was making the fold feel like a useful musical control. Hinge movement has to map to a predictable range of sound changes, while the interface stays playable as the device changes shape.
Another challenge was coordinating independent audio streams, scratching, beat alignment, and effects with a responsive interface. The implementation separates audio rendering from interface updates and uses shared layout geometry to keep the controls and visualizer aligned.
Accomplishments we're proud of
We're proud of connecting a new physical interaction to a familiar creative tool. Pulse brings mixing, sampling, and expressive effects into one native app, with the fold doing real musical work.
What we learned
Designing for a folding phone means thinking about posture as well as screen size. Where the controls sit, what the performer can see, and how movement changes the sound all need to work together. Building Pulse also brought together practical lessons in audio processing, beat detection, and adapting SwiftUI layouts.
What's next for Pulse
We'd like to refine the fold response through hands-on testing, improve beat detection across more kinds of music, and add set recording and export so performances can be saved and shared.
Built With
- avfoundation
- swift
- swiftui
Log in or sign up for Devpost to join the conversation.