Bubba Machine

Desarrollo

Requisitos

En Windows el comando de Python es py -3; en Linux y macOS, python3.

Comandos

py -3 tools/build.py assets   # fuente, kits, ondas, loops de fábrica y logo (core/gen/)
py -3 tools/build.py test     # compila y corre las pruebas en PC; capturas en assets/screens/
py -3 tools/build.py web      # emulador: web/bm.js
py -3 tools/build.py site     # páginas de documentación del sitio: web/docs/ y web/en/docs/
py -3 tools/build.py all      # todo lo anterior

Las pruebas (tests/test_core.c) recorren el firmware como lo haría una persona: arrancan, tocan botones, graban, guardan, apagan y vuelven a prender. También verifican el tiempo del secuenciador, el presupuesto de la pantalla y que nunca se escriba la flash mientras suena.

Estructura

core/        el firmware, C99 sin hardware: audio, secuenciador, interfaz y guardado
core/gen/    datos generados por tools/: fuente, kits, ondas, loops y logo
hal/         capas de hardware: sim (PC y web), web (WebAssembly) y fm1 (port)
web/         sitio: portada, emulador (emulador.html) y documentación (docs/, en/)
docs/        manual, especificación, diseño y guías (fuente del sitio); docs/en/ en inglés
tests/       pruebas automáticas
tools/       generadores y build
assets/      logo, capturas, loops de fábrica

Reglas del núcleo

Sonidos y loops de fábrica

py -3 tools/gen_loops.py --local

Un build hecho con --local no se puede publicar: ni web/bm.js ni binarios. Antes de subir cambios, vuelve a generar sin --local.

El sitio

Integración continua

.github/workflows/ci.yml corre las pruebas en cada push y en cada pull request.

Ramas

RamaPara qué
devTrabajo diario. Los pull requests van aquí
qaLo que se va a publicar, en prueba: emulador y, cuando exista, el FM-1
mainLo publicado. Cada versión sale de aquí y el sitio se publica desde aquí

Los cambios suben en un solo sentido: dev › qa › main.

Versiones

Esta página se genera desde docs/DESARROLLO.md. ¿Ves un error? Edita el archivo y manda un pull request.