---
# System prepended metadata

title: Mejoras en la instalación y uso de TidalCycles

---

# 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