Integra KISUM (audio→Strudel) + pestaña Visor + accesos en la cabecera
- 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:
parent
970b89b08c
commit
7ace286d8a
13 changed files with 1052 additions and 13 deletions
63
kisum/README.md
Normal file
63
kisum/README.md
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
# KISUM
|
||||
|
||||
*musik al revés*: le pasas un tema de audio (o el audio de un vídeo) y
|
||||
KISUM lo escucha, saca el tempo y los golpes, y te lo devuelve como
|
||||
**código Strudel** listo para pegar en tu Strudel local (`localhost:3009`)
|
||||
y seguir tocándolo en vivo.
|
||||
|
||||
```
|
||||
tema.mp3 / clip.mp4 ──> análisis (tempo, onsets por bandas, bajo) ──> patrón ──> Strudel
|
||||
```
|
||||
|
||||
**Acepta cualquier archivo con audio**: `mp3`, `wav`, `flac`, `m4a`, `ogg`...
|
||||
y también vídeo (`mp4`, `mkv`, `webm`, `mov`...). Los formatos de audio se
|
||||
leen directos; para vídeo u otros contenedores extrae la pista con `ffmpeg`
|
||||
de forma automática (necesitas tener `ffmpeg` instalado).
|
||||
|
||||
## Instalación
|
||||
|
||||
```bash
|
||||
cd ~/COFRE/CODERS/MUSIKA/AUDIO/PROYECTOS/KISUM
|
||||
python3 -m venv .venv
|
||||
.venv/bin/pip install -r requirements.txt
|
||||
```
|
||||
|
||||
## Uso
|
||||
|
||||
```bash
|
||||
.venv/bin/python3 kisum.py tema.mp3 # imprime el código Strudel
|
||||
.venv/bin/python3 kisum.py clip.mp4 # vale también un vídeo
|
||||
.venv/bin/python3 kisum.py tema.mp3 --bars 8 # analiza 8 compases
|
||||
.venv/bin/python3 kisum.py tema.mp3 --bass # añade línea de bajo (experimental)
|
||||
.venv/bin/python3 kisum.py tema.mp3 -o tema.strudel
|
||||
```
|
||||
|
||||
## Cómo funciona (v0)
|
||||
|
||||
1. **Tempo y rejilla** — `librosa.beat.beat_track` saca el BPM y los tiempos
|
||||
de negra; cada negra se parte en 4 (semicorcheas) → rejilla de 16 pasos
|
||||
por compás (4/4).
|
||||
2. **Golpes por bandas** — detección de onsets en tres bandas:
|
||||
graves (20–150 Hz → `bd`), medios (150–2500 Hz → `sd`),
|
||||
agudos (5–11 kHz → `hh`).
|
||||
3. **Cuantización** — cada golpe cae en el paso más cercano de la rejilla.
|
||||
4. **Salida** — un `stack()` de patrones Strudel, un compás entre `[ ]` y
|
||||
los compases alternando con `< >`.
|
||||
5. **`--bass`** — croma por pulso sobre el audio grave → `note("...")`.
|
||||
Es aproximado: úsalo como punto de partida, no como transcripción.
|
||||
|
||||
## Limitaciones conocidas de la v0
|
||||
|
||||
- Asume 4/4 y tempo estable (techno/house van perfectos; jazz no).
|
||||
- No separa instrumentos: un golpe grave "es" un bombo aunque fuera otra
|
||||
cosa. La separación por stems (demucs) está en la hoja de ruta.
|
||||
- El BPM puede salir al doble o a la mitad; corrígelo en el `setcps`.
|
||||
|
||||
## Hoja de ruta
|
||||
|
||||
- [x] v0: batería por bandas + tempo → Strudel (este directorio)
|
||||
- [x] Soporte universal de archivos: audio + vídeo (extracción con ffmpeg)
|
||||
- [ ] Separación por stems (demucs) y transcripción por stem
|
||||
- [ ] Melodía/acordes (basic-pitch) → `note()` con más de una voz
|
||||
- [ ] Elegir samples de Strudel según el timbre detectado
|
||||
- [ ] Modo directo: escuchar por el micro/monitor y transcribir en vivo
|
||||
Loading…
Add table
Add a link
Reference in a new issue