Adaptive Music Engine

TypeScript Web Audio API Phaser 3 Tone.js 15 tsup ESM/CJS Game Audio Indie Dev
Adaptive Music Engine

Adaptive Music Engine — Música para videojuegos indie en 5 líneas

Un SDK JavaScript/TypeScript (npm package) que permite a desarrolladores indie añadir música adaptativa a sus juegos web en menos de 10 líneas de código. La música cambia dinámicamente según el estado del juego (tensión, exploración, combate, victoria) usando vertical layering y horizontal resequencing.

Gap de mercado

FMOD y Wwise son las herramientas estándar — pero requieren apps externas, curva de aprendizaje enorme y son hostiles para devs web. Este SDK es web-first: funciona nativamente en Phaser 3, kaboom.js, Unity WebGL y Godot con exportación HTML5.

Arquitectura del SDK

El SDK expone una clase principal AdaptiveEngine que gestiona un grafo de AudioNodes internamente. Cada "capa" (layer) es un GainNode con su propia curva de volumen. El usuario define estados y transiciones en un archivo de configuración JSON. El engine escucha eventos via engine.setState('combat') y hace crossfade entre capas en el próximo downbeat (beat-aware transition).

Stack técnico

  • Web Audio API nativa: grafo de AudioNodes sin dependencias de terceros
  • Tone.js 15 Transport: beat-aware transitions en el próximo downbeat exacto
  • TypeScript 5.4 strict: autocomplete en VS Code y Cursor, DX superior
  • tsup (ESM + CJS dual build): zero-config, genera dual output automáticamente
  • Phaser 3.80: demo interactiva con mini-RPG 2D

Resultados

5
líneas de integración
4
motores soportados
MIT
licencia SDK
0ms
latencia crossfade

Funcionalidades implementadas

  • 5 líneas de código. Integración mínima vs FMOD/Wwise que requieren semanas de configuración y apps externas
  • Beat-aware transitions. El crossfade entre estados ocurre exactamente en el próximo downbeat, como en los juegos AAA
  • Web-first. Funciona nativamente en Phaser 3, kaboom.js, Unity WebGL y Godot sin bridges ni plugins complejos
  • TypeScript strict. Autocomplete completo en VS Code y Cursor. Errores de configuración en tiempo de compilación, no en runtime
Try Live Demo View Code
🤖 Asistente Virtual