Cybin
This is Cybin. This is early, unstable, alpha software actually relatively stable now and comes with some decent utilities.
Installation:
- Make sure you've got a C++ compiler
- Install
LuaJIT
,libsoundio
,libsndfile
, freeglut, and if you're on MacOS, XQuartz (XQuarts has a native MacOS installer, all other dependencies are available through brew) - Install
git
- Run
cd && git clone https://github.com/efairbanks/Cybin.git && cd Cybin
- Run
./debian_build.sh
ormacos_build.sh
depending on your platform - Put
export PATH=$PATH:~/Cybin
in your.bash_profile
or other shell startup file
Optional
- Install
Emacs
- Place the following into your Emacs init file (
~/.emacs
,~/.emacs.el
, or~/.emacs.d/init.el
)
(add-to-list 'load-path "~/Cybin")
(autoload 'cybin-mode "cybin-mode" "Cybin editing mode." t)
(add-to-list 'auto-mode-alist '("\\.cybin$" . cybin-mode))
(add-to-list 'interpreter-mode-alist '("cybin" . cybin-mode))
Emacs Hotkeys
C-c C-c
->execute line
C-c C-b
->execute file
C-c C-e
->execute block/paragraph
caveats: There's currently a pretty low limit to the number of characters you can send to the Cybin interpreter at a time, so watch out or it'll puke all over the place. Note the separation of code blocks in demo.cybin.
Goals:
- Few dependencies (relatively speaking) (done)
- Real-time, from-scratch audio synthesis in LUA (done)
- Real-time, from-scratch video & image synthesis with LUA and OpenGL (tbd)
- Seamless transition from live performance to high-quality offline rendering (audio: done, video: tbd)
- Loading audio, video, and image data (audio: done, video: tbd, image: tbd)
- On-the-fly reloading of LUA/OpenGL code with file watchers or a REPL (tbd)
- C++ classes wrapped in LUA interfaces with efficient implementations of common effects and techinques (tbd)
- granular synthesis
- ray-marching
- cellular automata
- etc...
- Mind-blowing demos and example code (tbd unless you like breakcore with repetetive basslines)
Dependencies
- LuaJIT
- libsoundio
- libsndfile
- freeglut
- XQuartz (required for MacOS freeglut compatibility)