strudel/README.md
hacklab 0d17ff7e76
Some checks are pending
Build and Deploy to warm (strudel.cc) / build (push) Waiting to run
Strudel tests / build (20) (push) Waiting to run
README: captura del REPL con la pestaña Projects y el transporte
2026-07-17 02:07:10 +02:00

83 lines
2.7 KiB
Markdown

# 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.
- 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): <https://codeberg.org/uzu/strudel> — su README original: [README-upstream.md](./README-upstream.md)
- Documentación / tutorial: <https://strudel.cc/learn>
- TidalCycles, el original en Haskell: <https://tidalcycles.org>
- Algorave, la escena: <https://algorave.com>
- Samples para empezar a jugar:
- Dirt-Samples (la librería clásica de Tidal): <https://github.com/tidalcycles/Dirt-Samples>
- tidal-drum-machines (Roland TR-808/909 y muchas más): <https://github.com/ritchse/tidal-drum-machines>
- Para ver de qué va esto en directo: <https://www.youtube.com/watch?v=iu5rnQkfO6M>