Hi everyone. I want to introduce you my new project Cells. It’s a live and creative coding environment, which allows you to mix different programming languages. It also makes your project organized and live coding sessions convenient, providing multiple tracks per language and cells — code snippets, which you can run, edit, move etc. Here is the list of supported languages:
Clojure
Common Lisp (SBCL)
Haskell
Lua
Node.js
Overtone
Python
Ruby
Scheme (Chez)
SuperCollider
Swift
TidalCycles
Also you can configure your own languages, but it’s more like a feature for developers. It’s free and open source. I hope you’ll find it useful.
I tested and packaged it under Catalina. It’s a packaging issue. You can try to run it from source for now. Wider platform support (including Windows) will be introduced with the next release, when I’ll rewrite it in Rust.
However, it would be nice to have some info to get started. To install, it’s easy:
download and install python
download and install poetry: curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
download source code from the last release
extract the zip and enter the source code dir:
poetry install
poetry run cells -d
Now, what should I do? For instance, I’m used to python, but what libraries can I use? And what about Ruby or JavaScript? Can you show some examples to get started?
Also, is it possible to run the cells in offline mode? What do you mean when you say “DAW” in the readme? Can we record audio?
Sorry for so many questions, maybe we can set up a little FAQ or Tutorial page…
For Ubuntu, Debian and macOS you don’t need to install Python and Poetry. Just download compiled binaries.
Cells is just an editor. That means you need a specific language to be installed and configured in your system. For example, if you want to use JavaScript you need node.js, for SuperCollider you need, well, SuperCollider and configure it so that it’s discoverable in the PATH variable, etc. Just like with any editor. It’s more about how you structure your document. You have columns of different languages and rows of snippets (small code pieces). You can configure a column to execute some setup script, for example, to import some libraries or to define and initialize some synths. Then you can add those snippets and run them individually or a whole row of snippets at a time.
Firstly, it’s an editor. But whether it’s a DAW, a sequencer, an effect/processor and so on is really depends on how you use it — that what I mean in the readme.