Integra KISUM (audio→Strudel) + pestaña Visor + accesos en la cabecera
Some checks are pending
Build and Deploy to warm (strudel.cc) / build (push) Waiting to run
Strudel tests / build (20) (push) Waiting to run

- Pestaña KISUM: sube audio/vídeo y lo convierte en código Strudel vía un
  mini-servidor Python local (kisum/, puerto 3010) que arranca el lanzador.
- Pestaña Visor: piano-roll (pentagrama) + osciloscopio + espectro en vivo
  de lo que suena, sin escribir .pianoroll()/.scope().
- Botones en la cabecera: projects, KISUM, visor, ajustes.
- KISUM empaquetado en kisum/ (código, sin venv) + install.sh de un comando
  y lanzador portable (sin rutas absolutas).
- .gitignore excluye venv/cachés/logs de KISUM. Docs en README.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
hacklab 2026-07-26 18:31:37 +02:00
parent 970b89b08c
commit 7ace286d8a
13 changed files with 1052 additions and 13 deletions

View file

@ -18,30 +18,41 @@ pinchar en directo. Misma licencia que upstream: AGPL-3.0 (ver `LICENSE`).
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.
- Pestaña **KISUM** (*musik al revés*): sube un audio o vídeo y te lo devuelve
como código Strudel (tempo + batería por bandas). Lo procesa un mini-servidor
Python local (`kisum/`) que arranca solo con el lanzador. Ver más abajo.
- Pestaña **Visor**: pentagrama (piano-roll), onda (osciloscopio) y espectro
**en vivo** de lo que suena, sin tener que escribir `.pianoroll()` ni
`.scope()` en el código.
- Accesos directos en la cabecera: `projects`, `KISUM`, `visor`, `ajustes`.
- 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`).
Requisitos: `git`, `node` >= 20, `pnpm` (`corepack enable`) y, para KISUM,
`python3` + `ffmpeg`.
**Fácil (un comando):**
```bash
git clone https://gitea.laenre.net/hacklab/strudel.git
cd strudel
./install.sh # instala Node deps + build + entorno de KISUM
./strudel-launcher.sh # http://127.0.0.1:3009 (+ KISUM en 3010) y abre el navegador
```
El `install.sh` no descarga los paquetes al repo: usa `pnpm` (Node) y un
`venv` de Python para KISUM. Todo eso queda en `.gitignore`.
**Manual / desarrollo:**
```bash
pnpm i
```
Desarrollo (recarga en vivo):
```bash
pnpm dev # http://localhost:4321
```
Uso diario (build estática + lanzador):
```bash
pnpm dev # recarga en vivo, http://localhost:4321
# o, para el uso diario (build estática + lanzador):
pnpm build
./strudel-launcher.sh # sirve http://127.0.0.1:3009 y abre el navegador
./strudel-launcher.sh
```
Icono de escritorio: `~/.local/share/applications/strudel.desktop`
@ -65,6 +76,32 @@ 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.
## KISUM (audio → código Strudel)
KISUM escucha una canción (audio **o vídeo**: mp3, wav, flac, m4a, mp4, mkv…),
detecta el tempo y los golpes por bandas (bombo/caja/hats) y lo devuelve como
código Strudel listo para pegar. Vive en la carpeta `kisum/` (Python + librosa)
y se usa de dos formas:
- **Desde Strudel**: pestaña *KISUM* → arrastra el archivo → *Analizar*
*Cargar en editor*. El mini-servidor (`kisum/kisum_server.py`, en
`127.0.0.1:3010`) lo arranca solo `strudel-launcher.sh`.
- **Desde la terminal**:
```bash
cd kisum
./kisum tu_cancion.mp3 # imprime el código Strudel
./kisum clip.mp4 --bars 8 --bass # vídeo, 8 compases, con línea de bajo
```
Requiere `python3` y `ffmpeg`. Si `./install.sh` no lo dejó listo (o quieres
reinstalarlo): `./kisum/install.sh`. Detalles y limitaciones en
[`kisum/README.md`](./kisum/README.md).
> Nota: la transcripción de la v0 analiza la mezcla completa (aún no separa
> instrumentos), así que en temas muy densos el patrón sale cargado. La
> separación por stems (demucs) está en la hoja de ruta.
## Actualizar desde upstream
```bash