AUDDCONCEPT
0 %
Loading

LumaSynth

Light-to-Sound Synthesizer · Android Application

APP DESIGN UI/UX
SOUND SYNTHESIS AUDIO CREATIVITY
Foundgood Cover Image

/ Overview

Turn light into music — LumaSynth is a real-time light-to-sound synthesizer for Android that uses the device camera as a living, multi-channel instrument. Six independent sensors read luminance values from the live camera feed and map them directly to pitch, amplitude and timbre across 24 built-in synthesizer voices. Point the camera at anything — a candle, a sunset, a monitor — and the world becomes your instrument.

See it live

/ Project Details

Name: LumaSynth – Light-to-Sound Synthesizer Android App

Category: Music Technology / Creative Instrument

Platform: Android (Jetpack Compose + Native C++)

Stack: Kotlin · C++ (Oboe) · JNI · CameraX · Jetpack Compose

Date: November 2025

/ Concept

The idea behind the project was to transform a smartphone camera into a playable audiovisual instrument. By continuously capturing live visual data and translating luminance values into musical parameters, the app creates a direct relationship between light, motion, and sound. Multiple virtual sensor zones interpret different areas of the camera feed simultaneously, allowing to shape melodies, textures, and rhythms.

/ Features

Sensor Engine

Six on-screen light sensors are placed evenly across the camera preview. Each sensor independently samples the camera feed at ~20 FPS, converting luminance values to voltage-like levels (1V–5V) that directly control pitch and amplitude. Sensors are individually assignable to any of 24 synthesizer voices.

S-Mode (GATE)

A dedicated S mode quantizes each sensor's luminance reading to a five-note pentatonic scale — C4, E4, G4, A4, C5. The 1V–5V voltage buttons become live real-time indicators showing the active pitch step, turning any sensor into a touch-free melodic instrument that responds to light intensity.

24-Voice Synthesizer

The instrument bank spans pads, organs, basses, acid leads, bells, glass tones, choirs, strings, noise sweeps and more. Each voice is rendered by a C++ Oboe audio engine with per-voice oscillators, envelopes and timbral shaping — all running in a dedicated audio thread.

/ System

LumaSynth uses a two-layer system architecture combining a Kotlin/Compose interface with a native C++ audio engine powered by Oboe and JNI. The Compose layer manages camera preview, sensor interaction, and visual feedback, while the native engine handles real-time synthesis, mixing, and recording. A JNI bridge continuously transfers luminance data from the camera pipeline to the audio engine, enabling responsive low-latency sound generation while keeping the UI and audio processing independent for smooth performance.

/ Tech Stack

Kotlin & Jetpack Compose

The entire UI is built with Jetpack Compose — sensor overlays, toggle buttons, live waveform graphs, mixer screen and instrument gallery are all declarative composables. Canvas-based rendering drives the luma wave graph, audio waveform visualizer and sensor divider lines in real time.

C++ DSP Engine

The synthesis core is a custom C++ engine using Google's Oboe library for low-latency Android audio. Per-voice oscillators, amplitude envelopes, a stereo widener, reverb, delay, filter and drive chain all run in the native audio callback at the device's preferred buffer size and sample rate.

CameraX and Image Analysis

Google's CameraX library powers the live camera pipeline. An ImageAnalysis use case feeds YUV frames to a background analyzer at up to 20 FPS. A pixel sampler reads the sensor regions and converts luminance to normalized float values used by both the audio engine and the UI. synthesis.

WAV Recording System

Stereo WAV recording captures the mixed output directly from the audio engine buffer. Recordings are auto-numbered sequentially and accessible through the built-in recording library with playback and file management.

Foundgood Cover Image

/ About Lumasynth

LumaSynth began as an exploration of whether ambient light could become a musical controller. The result is a fully playable, studio-quality synthesizer that runs entirely on an Android phone — no MIDI controllers or external hardware required, just a camera, light, and sound.