# Strudel · fork del hacklab Fork de [Strudel](https://codeberg.org/uzu/strudel) (live coding de música en el navegador, port de TidalCycles a JavaScript) con mejoras de usabilidad pensadas para pinchar en directo y para gente que empieza. Upstream: · Licencia: AGPL-3.0 (la misma, ver `LICENSE`). Gracias al equipo de Strudel/TidalCycles por la base ♥ ## Qué añade este fork - **Interfaz multiidioma** (`website/src/i18n.mjs`): castellano, inglés, francés, alemán, italiano, portugués y más. Se cambia desde el selector del header y se guarda en los ajustes. - **Pestaña Projects**: gestor de proyectos locales (localStorage) con carpetas, buscador y una librería de tracks de fábrica lista para pinchar (bases techno/acid originales, de la casa). - **Barra de transporte** estilo reproductor bajo el editor: anterior / play-pausa / siguiente, tiempo transcurrido y **barra de progreso arrastrable** (seek real: se añadió `Cyclist.setCycle()` en `packages/core`). - **Pestaña Guía**: chuleta de síntesis y sonidos para tener a mano mientras se pincha. - **Packs de temas** para el editor (`neon-madrid` + `hacklab-pack`: 5 neón sobre negro y 5 estándar). - **Lanzador de escritorio** (`strudel-launcher.sh`): sirve la build estática en local y abre el navegador. Ideal para un icono clicable. ## Instalación (Linux) Requisitos: `git`, `node` >= 20 y `pnpm` (`corepack enable` lo activa). ```bash git clone https://gitea.laenre.net/hacklab/strudel.git cd strudel pnpm i # instala las dependencias del monorepo ``` ### Modo desarrollo (recarga en vivo) ```bash pnpm dev # abre http://localhost:4321 ``` ### Modo "aparato" (build estática + lanzador) ```bash pnpm build # genera la web estática ./strudel-launcher.sh # la sirve en http://127.0.0.1:3009 y abre el navegador ``` Para el icono de escritorio, crea `~/.local/share/applications/strudel.desktop`: ```ini [Desktop Entry] Type=Application Name=Strudel Comment=Live coding de música Exec=/ruta/a/strudel/strudel-launcher.sh Icon=audio-x-generic Terminal=false Categories=AudioVideo;Audio; ``` ## Añadir tus propios packs de proyectos La librería de fábrica vive en `website/src/repl/components/panel/default-projects.mjs`. Para un pack personal sin tocar el repo, crea un módulo local con el mismo formato `{name, folder, code}` y concaténalo en `DEFAULT_PROJECTS` (los packs personales están en `.gitignore`). También puedes crear y organizar proyectos directamente desde la pestaña Projects de la interfaz. ## Mantenerse al día con upstream El remoto `upstream` apunta al Strudel original: ```bash git fetch upstream git merge upstream/main # y resolver conflictos si los hay ```