Hello Moritz,

> GHCi is basically just GHC. And you could ship GHC with an initial package-db 
> that contains all of your tidal dependencies, thus removing the need to 
> install more.

Thank you for the idea of using a package-db. When you say initial, do you mean 
that:

We create a package-db that points to the built tidal libraries and make sure 
our executable can find it, or that this package db can actually be hosted 
inside the compiled executable at compile time?

> Adding additional packages will require cabal/stack or some other way to get 
> and build them though, should that be a consideration.

This would be nice to support, but many users of tidal, such as myself, are not 
haskell developers. If needed, the current method of using tidal cycles using 
the haskell package ecosystem is suitable for this usecase.

The issue is more that: a musician might be really excited to try tidal cycles 
but struggle or fail to complete the process of installing a development 
environment. Many people who give workshops for tidal spend the majority of the 
time helping with installation!

Using a package-db to create an easy-to-distribute nix or MacOS package is a 
huge plus, but having a portable static binary is a lot more foolproof, and 
affords lots more interesting use-cases.

Another example: packaging tidal as a standalone WASM blob that we can easily 
distribute as a VSCode plugin. This would allow for a fool-proof one-click 
install! (to that note, thank you Georgi for the ghc/wasm example)

> For your second question, to just “run” a tidal pattern, you should be able 
> to compile this into a standalone (even static) haskell executable I would 
> assume. And then be able to ship that around and run in the final environment.

Unfortunately, this would not work, as the pattern would be authored by the 
user of the DAW, inside the DAW, and would not be known at compile time. You 
can find an example of a VST plugin which uses a stripped down version of tidal 
(with its own parser and execution engine) here: 
https://codeberg.org/TristanCacqueray/pluguzu

---

As a closing note, tidal only really makes sense as a domain-specific language 
embedded within haskell. So in order to easily distribute or embed tidal, we 
have to package or embed haskell too!

Thanks,

Gwen
_______________________________________________
ghc-devs mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to