0.1.0 • Published 4 years ago

flok v0.1.0

Weekly downloads
-
License
GPL-3.0
Repository
-
Last release
4 years ago

flok

Version

Web-based collaborative editor for live coding music and graphics

Work in progress

Features / Ideas

  • Web and DB server (similar to Etherpad, but focused on code evaluation for livecoding).
  • REPL plugins: allows user to locally evaluate code from interpreters (like Haskell, Ruby, Python, etc.):
    • TidalCycles
    • SuperCollider (sclang)
    • FoxDot
    • SonicPi
    • ... any interpreter with a REPL (Python, Ruby, etc.)
  • Web Plugins, for languages embedded in editor (not implemented yet):
    • Hydra
    • Tilt

Install

flok is written in Node and Javascript. In the future we will release packaged executables but for now you will have to download or clone the repository.

After unpacking or cloning, from the directory of the repository run:

yarn

This will install all dependencies.

Usage

Local server

To that the server (hub), run:

yarn start

Then go to http://localhost:3000 and enter a session name. Users should enter the same session name to edit the same document.

You should now run a REPL for your language. For example, to run sclang (SuperCollider):

./repl.js -- sclang

This will start sclang interpreter and connect it to flok. Now when you (or someone else) evaluates code in flok, it will be sent to sclang.

Remote server

There's currently a remote hub on flok-hub.herokuapp.com. To start a REPL for that hub, you should run repl.js with SSL enabled. For example, to start a tidal REPL, run the following:

./repl.js -H flok-hub.herokuapp.com -P 443 --secure -- tidal

Note: Usually to start the TidalCycles interpreter, you have to run GHCI with some options and a bootstrap script, but you can use this wrapper script to simplify this process and use it with flok (Linux and macOS only, for now). Follow the instructions there.

Acknowledgments

Contributing

Bug reports and pull requests are welcome on GitHub at the issues page. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

This project is licensed under GPL 3+. Refer to LICENSE.txt