Overview
Four-node distributed music instrument:
- Mobile Phone: Touch/motion/gesture performance interface
- Vlingo: Voice-to-note mapping and vocal expression engine
- VPS Server: Orchestration, logic, routing
- Laptop: SuperCollider audio synthesis
System Architecture
Phone UI → Vlingo → WebSocket → VPS → OSC → SuperCollider → Audio Output
Voice → Vlingo → WebSocket → VPS → OSC → SuperCollider → Audio Output
Context Grouping
The system is organized into four functional contexts using Domain-Driven Design principles:
Performance Context (Phone)
- Gesture capture and mapping
- 8x8 grid for note/drum triggering
- Motion controls for modulation
- Recording/loop controls
Orchestration Context (VPS)
- WebSocket server (Node.js/FastAPI)
- Event routing and normalization
- Musical logic engine (DDD bounded context):
- Quantization (beat grid alignment)
- Scale filtering (key restriction)
- Pattern generation (Euclidean rhythms)
- Variator (random injection)
- Session state management
- Timing coordination
Voice Context (Vlingo)
- Voice-to-note mapping engine
- Real-time vocal pitch tracking
- Syllable-based trigger system
- Harmony voice blending
- Vlingo acts as bridge between vocal expression and musical synthesis
Synthesis Context (Laptop)
- SuperCollider audio engine
- OSC listener for remote control
- DSP processing and FX chain
- Real-time rendering
Design Philosophy
Domain-Driven Design is coupled to context-aware coding and planning. Each context (Performance, Orchestration, Voice, Synthesis) represents a bounded context with clear responsibilities and communication boundaries. Video reference demonstrates DDD principles for distributed systems.
Current Focus
Building the real-time musical interaction pipeline with quantization and generative composition.
Built as part of an ongoing exploration into development systems and design constraints.