SP Stillpoint
Ambient mixer

Ambient sound for focus.

Layer 50 ambient sounds across 10 categories. Independent volume per layer, device routing, real-time state sync. Powered by sonic-core and sonic-runtime.

Clone

git clone https://github.com/mcp-tool-shop-org/stillpoint cd stillpoint && npm install

Server

SONIC_RUNTIME_PATH=./SonicRuntime.exe \ npx tsx packages/server/src/bin.ts

UI

npm run dev --workspace=@stillpoint/ui # → http://localhost:5177

Features

Everything you need for ambient sound mixing.

50 Ambient Sounds

10 categories: rain, water, ocean, wind, fire, night, noise, drone, tone, mechanical. 60-second loop-friendly WAV files.

Layered Mixer

Add multiple sounds simultaneously. Each layer has independent volume control. Build complex ambient environments.

Per-Layer Volume

Range sliders with debounced real-time adjustment. Optimistic UI updates for instant feel.

Device Routing

Select your audio output device. Powered by sonic-core per-playback device routing through OpenAL Soft.

Real-Time SSE

Server-Sent Events push state changes instantly. The UI stays in sync without polling.

Tauri Desktop

Native window via Tauri v2. Minimal Rust shell — the real work happens in Node.js and sonic-runtime.

Quick Start

Prerequisites

# Node 20+
node --version

# sonic-runtime binary
# Build from:
# github.com/mcp-tool-shop-org/sonic-runtime
dotnet publish src/SonicRuntime \
  -c Release -r win-x64

Dev Setup

# Clone and install
git clone https://github.com/mcp-tool-shop-org/stillpoint
cd stillpoint
npm install

# Terminal 1: server
SONIC_RUNTIME_PATH=/path/to/SonicRuntime.exe \
  npx tsx packages/server/src/bin.ts

# Terminal 2: UI
npm run dev --workspace=@stillpoint/ui

Architecture

# Three-process model:
#
# Browser/Tauri ──REST+SSE──▶ Node.js server
#                              │
#                         ndjson-stdio
#                              │
#                         sonic-runtime
#                         (OpenAL Soft)