- 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>
2.6 KiB
2.6 KiB
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
cd ~/COFRE/CODERS/MUSIKA/AUDIO/PROYECTOS/KISUM
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
Uso
.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)
- Tempo y rejilla —
librosa.beat.beat_tracksaca el BPM y los tiempos de negra; cada negra se parte en 4 (semicorcheas) → rejilla de 16 pasos por compás (4/4). - 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). - Cuantización — cada golpe cae en el paso más cercano de la rejilla.
- Salida — un
stack()de patrones Strudel, un compás entre[ ]y los compases alternando con< >. --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
- v0: batería por bandas + tempo → Strudel (este directorio)
- 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