# 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 para pinchar en directo. Misma licencia que upstream: AGPL-3.0 (ver `LICENSE`). ![El REPL con la pestaña Projects y la barra de transporte](./docs/captura.png) ## Qué añade - Interfaz multiidioma (castellano, inglés, francés, alemán, italiano, portugués y más). Selector en el header. - Pestaña Projects: proyectos locales con carpetas, buscador y una librería de tracks de fábrica para empezar a pinchar: bases techno/acid originales y 50 remixes retro (80s/90s/2000s) escritos en código. - Barra de transporte bajo el editor: anterior / play-pausa / siguiente, tiempo y barra de progreso arrastrable (seek real sobre el reloj del scheduler). Al cargar un track el loop arranca desde cero; editar y actualizar en vivo no reinicia nada. - Pestaña Guía: chuleta de síntesis y sonidos. - Packs de temas del editor: neon-madrid y hacklab-pack. - Lanzador de escritorio: `strudel-launcher.sh`. ## Instalación (Linux) Requisitos: `git`, `node` >= 20 y `pnpm` (`corepack enable`). ```bash git clone https://gitea.laenre.net/hacklab/strudel.git cd strudel pnpm i ``` Desarrollo (recarga en vivo): ```bash pnpm dev # http://localhost:4321 ``` Uso diario (build estática + lanzador): ```bash pnpm build ./strudel-launcher.sh # sirve http://127.0.0.1:3009 y abre el navegador ``` Icono de escritorio: `~/.local/share/applications/strudel.desktop` ```ini [Desktop Entry] Type=Application Name=Strudel Comment=Live coding de musica Exec=/ruta/a/strudel/strudel-launcher.sh Icon=audio-x-generic Terminal=false Categories=AudioVideo;Audio; ``` ## Packs de proyectos propios La librería de fábrica está en `website/src/repl/components/panel/default-projects.mjs`. Para un pack personal crea un módulo con el mismo formato `{name, folder, code}` y concaténalo en `DEFAULT_PROJECTS` (los packs personales están en `.gitignore`). También se pueden crear proyectos desde la propia pestaña. ## Actualizar desde upstream ```bash git fetch upstream git merge upstream/main ``` ## Enlaces - Strudel (upstream): — su README original: [README-upstream.md](./README-upstream.md) - Documentación / tutorial: - TidalCycles, el original en Haskell: - Algorave, la escena: - Samples para empezar a jugar: - Dirt-Samples (la librería clásica de Tidal): - tidal-drum-machines (Roland TR-808/909 y muchas más): - Para ver de qué va esto en directo: