# Mejoras en la instalación y uso de TidalCycles Resumen de problemas y dificultades a la hora de instalar el stack de TidalCycles+SuperCollider+SuperDirt. El objetivo es simplificar todo este proceso e idealmente tener una forma de distribuir un paquete portable facil de descargar y utilizar, dirigido a usuarios nuevos o casuales, con buenos defaults, y multiplataforma. ## Dificultades en la instalación ### TidalCycles * Son muchos pasos por linea de comando. * Se necesita un GHC bastante nuevo, y las instrucciones de instalación varian mucho entre sistema operativo. * Los paquetes se compilan siempre, asi que puede haber problemas de compilación por librerias dinámicas que no estan (está pasando en MacOS viejos) * Problemas de variables de entorno (depende del SO, del shell, del programa usado para terminal, etc.) ### Editor de texto (Atom, Vscode) * En general esto no es un problema, aunque gente ajena a la programación les puede costar entender la GUI al principio. * Hay varias opciones, y puede ser confuso (cual es mejor?) ### SuperCollider, Sc3plugins, SuperDirt * La instalación de SuperCollider creo que es sencilla hoy por hoy (hay un instalador ejecutable para cada sistema operativo). * La instalación de los plugins (sc3plugins) es manual en Windows y OSX, y en Linux ni siquiera hay binarios, hay que compilar (!!!) * Para instalar SuperDirt, hay que instalar git antes (hay instaladores though) ## Dificultades en el uso ## Posibles soluciones ### TidalCycles REPL * Se podría crear un binario de Haskell que haga de REPL e incluya Tidal dentro. * Static linking: para evitar instalar Haskell (!) * Cross plataforma: Podríamos cross compilar el binario para tenerlo en varios sistemas operativos, usando algún CI, Docker, etc. * Teniendo un REPL de Tidal, se podría implementar mecanismos de seguridad, en caso de correr para Flok por ejemplo (ver [safe-tidal-cli](https://github.com/jwaldmann/safe-tidal-cli)). ### SuperDirt REPL * REPL que wrappea sclang * Portable: viene con los plugins y quarks de SuperDirt * Al levantarse, ya inicia SuperDirt y el servidor con buenos defaults (los de SuperDirt) * Boot configurable * Cross plataforma ### TidalCycles IDE (Editor à la FoxDot/SonicPi/etc) * Se podría unificar las aplicaciones anteriores en una sola aplicación GUI que haga de: - Editor de texto - Manejo de Tidalcycles REPL - Manejo de SuperDirt REPL * Portable * Defaults amigables pero ajustables * Cross plataforma