Inspiration

Flow (“being in the zone”) is an optimal state where you’re fully immersed and performing at your peak. We built LogiTune to sustain that state by generating a soundtrack on the fly that adapts to how you’re working—blending digital body language, desktop behavior, and tactile overrides.

What it does

LogiTune translates events from input devices and desktop activity—plus webcam affect signals—into a unique soundtrack that matches your work vibe. It fuses those signals into mood vectors (Focus/Intensity), drives a Strudel-based music engine through a Go gateway to start/stop/toggle and tweak mix parameters, and lets a MX Keypad plugin play/pause or reset from physical buttons.

How we built it

  • visual-emotions (Python/MediaPipe): tracks face+pose, smooths state scores, publishes camera metrics.
  • activity-monitor (Go): logs keyboard, mouse, window focus, and camera metrics; converts to MoodScale with weights/smoothing, can graph, and sends MoodMatrix to a mood server.
  • DJ (Go) runs the public gRPC API (MoodService + MusicPlayerService on :50051) and bundles the default sound backend. Internally it uses SprudelSoundController to dial the sprudel-production MixerControl server (default :50060) to start/stop/toggle and adjust mix knobs, but you can swap the controller if needed.
  • sprudel-production (TypeScript/Electron): Strudel renderer UI plus MixerControl gRPC server forwarding RPCs into renderer JS.
  • LogiTunePlugin: gRPC client for DJ; exposes play/pause and reset on deck buttons.

Challenges we ran into

  • Translating noisy webcam/body signals into stable focus/energy without over-smoothing away responsiveness.
  • Choosing weights across keyboard/mouse/window/camera so no single source dominates and drift is minimized.
  • Mapping abstract mood (focus/intensity) to concrete musical changes (scene selection, gain/FX curves) that feel intentional.
  • Keeping feedback tight enough that users perceive the music as reacting to their state, not lagging or snapping.

Accomplishments that we're proud of

  • End-to-end loop from desktop + webcam signals → fused mood → music engine.
  • Reusable mood and mixer contracts that cover both continuous parameters and transport controls.
  • Live demo with externally controllable knobs and visual mood graphing for feedback.

What we learned

  • Multi-modal mood sensing needs careful calibration and asymmetric smoothing to stay steady yet responsive.
  • Per-source weighting and decay help tame spikes from bursty typing or camera dropouts.
  • Musical mappings work best when tied to perceptible levers (drums energy, room, lead delay/LPF) rather than opaque parameters.

What's next for LogiTune

  • Iterate on mood-to-music mappings (dynamic weighting, personalization, presets).
  • Add richer mixer scenes/FX and expose them in sprudel-production.
  • Improve MX Keypad UX (status feedback, configurable targets) and package the stack for easy spin-up.

Built With

Share this project:

Updates