Skip to content

Sori

Sori (sound) of Korea makes learning about traditional Korean instruments interactive and beautiful.

Core trick

Turns a hummed melody into a four-instrument arrangement, while 3D instrument models play recorded sounds on touch.

Tags

Description

Sori (sound) of Korea makes learning about traditional Korean instruments interactive and beautiful. Users explore playable 3D instruments and Korean folk songs, and turn a few seconds of humming into a four-instrument ensemble.
Jiyungi/sori★ 00 forksTypeScriptCreated Sep 8, 2026 · last push Sep 8, 2026

README excerpt

# Sori (sound) of Korea

![Sori’s interactive Gayageum with instrument information and Play with Astra controls](docs/images/sori-gayageum.png)

Sori explores how educational information can become a beautiful, interactive experience. Its intention is to make learning about traditional instruments engaging and accessible through thoughtful visual design, sound, and play. Explore four representative Korean instruments: **Gayageum** (plucked strings), **Haegeum** (bowed strings), **Daegeum** (bamboo flute), and **Janggu** (hourglass drum). Connect their appearance, playing gestures, and sound through hands-on discovery.

## Explore and create

Rotate 3D instruments, touch their strings, holes, or drumheads, and hear recorded sounds with synchronized motion. Play **Arirang** to watch the four parts work together.

Play a phrase or **hum for 10–20 seconds**. Compare the detected melody with Astra’s cleanup, choose a version, and build an ensemble. Revise it with requests like “give the flute more breathing room,” without reading notation.

## How it works

- **Interactive sound:** React, TypeScript, and Three.js provide the interface and instrument interactions. Web Audio schedules recorded samples and synchronizes playback with instrument animation.
- **Humming to notes:** An AudioWorklet captures audio locally. A browser worker estimates pitch and segments notes with timing and uncertainty measurements. Raw audio stays in the browser.
- **Astra as arranger:** GPT-6 Astra receiv

Team