← All projects Coding

Meap Car

Oscillator Synthesis · Hardware Meap + Arduino + MaxMsp · 2025

Oscillator SynthesisInteractive Audio-VisualArduinoMax/MSP

Meap Car generates its engine sound, melodies, and harmonies through oscillator-based synthesis in Arduino code running on a Meap board. Touch pads and knobs shape the sound while a Max patch receives control data and links the visuals, so the engine, music, and video respond together.

Demo

The idea

All of Meap Car’s audio is synthesized in the Arduino code running on the Meap board. The engine texture, background melodies, and harmonies are generated in real time, rather than played from recordings. Oscillators provide the sound sources, while the code determines the notes, rhythms, and envelopes.

The engine, music, and visuals respond together as the player changes modes, complexity, note release, and speed. Max handles the visual side: it receives control data from the board and uses it to switch and process the video backgrounds. The sound synthesis stays on the board.

Meap board with three knobs and a connected capacitive touch-pad controller, photographed by Jazlyn Pei.

The Meap board was provided by Mason, my instructor at NYU. Thank you to Mason for making the hardware available for this project.

Sound and music

The engine sound is made by multiplying two wavetable oscillators, one following the engine-speed value and the other running at 2.5 times that frequency. Their interaction produces a rough mechanical texture. Speed changes are smoothed to give the engine some inertia, with filtered noise adding a wind-like layer as it accelerates.

The musical layer combines chords with a generated melody. Each mode uses its own scale, progression, waveform, and note-selection rules. Major follows an arpeggio pattern, Minor uses a more lyrical pattern, Cyber emphasizes lower notes and syncopation, and Tension allows less predictable notes across a wider range.

A complexity control changes those rules rather than simply adding more notes. Depending on the mode, it introduces passing notes, octave shifts, off-beat events, or more irregular triggering. The other knob controls note release, letting sounds overlap for longer.

Visual response

The Max patch handles video playback and communication with the Meap board. Four backgrounds correspond to the musical modes and fade between scenes. Playback speed follows the throttle control, while increasing complexity adds a strobe effect.

The board sends SCENE and CHAOS messages to Max over serial. MIDI controls handle engine speed and ignition. This separates the synthesis and music logic on the board from the visual processing in Max, while keeping them connected through the same controls.

Controls

ControlResponse
Engine speed / MIDI CC 1Engine pitch and musical tempo
Ignition / MIDI CC 2Engine start and stop
Touch pads 0–3Major, Minor, Cyber, and Tension modes
Potentiometer 0Note release time
Potentiometer 1Musical complexity and visual strobe

Source files

The GitHub repository includes the Arduino sketch, editable Max patch, four video backgrounds, and design overview. To open the visual patch, keep the background videos with the .maxpat file and select the connected board’s serial port in Max.