Mejoras hacklab: i18n, pestaña Projects, transporte con seek, guía y temas

- i18n ligero de la interfaz del REPL (castellano, inglés, francés, alemán,
  italiano, portugués...) con selector en el header
- Pestaña Projects: gestor local de proyectos con carpetas, buscador y
  librería de tracks de fábrica (bases techno/acid originales)
- Barra de transporte bajo el editor: play/pausa/anterior/siguiente, tiempo
  y barra de progreso arrastrable; seek real vía Cyclist.setCycle()
- Pestaña Guía: chuleta de síntesis y sonidos para el directo
- Packs de temas del editor: neon-madrid + hacklab-pack (5 neón + 5 estándar)
- pnpm-workspace: allowBuilds para instalación limpia en Linux
This commit is contained in:
hacklab 2026-07-17 01:47:12 +02:00
parent c150752372
commit 7b9f1155b4
13 changed files with 2731 additions and 55 deletions

View file

@ -133,6 +133,14 @@ export class Cyclist {
this.cps = cps;
this.num_ticks_since_cps_change = 0;
}
// salta a un ciclo concreto (seek). El siguiente tick re-ancla la fase del
// reloj igual que hace un cambio de cps: num_cycles_at_cps_change tomará
// lastEnd (el ciclo pedido) y seconds_at_cps_change la fase actual.
setCycle(cycle) {
this.num_ticks_since_cps_change = 0;
this.lastBegin = cycle;
this.lastEnd = cycle;
}
log(begin, end, haps) {
const onsets = haps.filter((h) => h.hasOnset());
console.log(`${begin.toFixed(4)} - ${end.toFixed(4)} ${Array(onsets.length).fill('I').join('')}`);