The dark side of the Force is a pathway to many abilities some consider to be unnatural.
The Dark side is used by Obi-Wan Codenobi and The Wookie for use in live-coding audio-visual performances. Together they travel as The Rebel Scum.
The Dark Side uses the same GLSL language as The Force, but with the addition of being able to also live-coding Tidal Cycles in the same text buffer.
The GLSL will auto-compile.
Tidal will be executed by the typical shift+return for lines and ctrl+return or cmd+returnfor blocks.
The Dark Side is tele-matic and multi-user. The backend uses Google's Firebase under Firepad an extesion to the Ace Editor. This can be configured to run multiple users remotely (anywhere) or locally (same subnet).
Text edits are recorded and then able to be saved, JSON format, and played back in The Dark Side with an edits made to Sang Won Lee's livewriter.
Short paper on this software published at the 3rd International Conference on Live-Coding. That paper is here ShortPaper-TheDarkSide.pdf
Lots of testing this out here https://vimeo.com/album/4688973
- Install all things required for Tidal Cycles
- Install Node
- Download this repository
- From terminal or command line go to the downloaded repository, then
npm install
- Make a firebase account
- Follow directions here to grab your apiKey, etc. this information will replace the config dictionary in TheDarkSide/public/js/myFirebase.js Replace only what's required. NOTE: This is your private key information, anyone who has this will use your account, unless you additionally setup user authentications. Each collaborator will also need this information in their copy of their repository so that you're all pointing to the same place.
From terminal in the repository, type
node index
Open a browser window, Chrome recommended.
Go to localhost:8000
A random hash, something like
/#-Ke-ob9Bx4oBoKwR867q
will be append to the URL. This hash is your current firepad database. Share this hash with your collaborators, or use the same hash everytime to use The Dark Side. For example, bookmark this new URL.
Using
node index help
will give information and options for the program. For more details and the default settings see TheDarkSide/index.js
For local subnet firebase you'll need to change the config. TheDarkSide/public/js/myFirebase.js In local mode the apiKey can be anything.
var config = {
apiKey: 'something',
databaseURL: "ws://127.0.1:5000"
}
Note that the connection is websocket and that the ip only has two dots. This is very important. The above only works if it's one person. If you need several people on a local subnet, then things become more complicated. The following have worked based on where I am. You will need something similar.For example when I generate a wifi from my computer and others connect to it:
var config = {
apiKey: 'something',
databaseURL: "ws://lawsos2.local.:5000"
}
or, when we all join my wifi router at home
var config = {
apiKey: 'something',
databaseURL: "ws://lawsos2-mbp15.fios-router.home:5000"
}
The floppy drive icon at the bottom will save your performance to a JSON formatted .txt file.
To play back your file, use the file open icon and choose your file. Click the gear icon to open a semi-working playback control window.
- Check The_Force contains several GLSL examples
- Workshop Notes contains some hand-written information and a few more example shaders
- ctrl+shift will toggle text visibility
- backbuffer is a copy of the previous frame's frontbuffer
- https://github.com/ajaxorg/ace
- http://darsa.in/fpsmeter/ also https://github.com/darsain/fpsmeter
- http://jquery.com
- http://www.flaticon.com
- https://github.com/eligrey/FileSaver.js
- https://github.com/eligrey/canvas-toBlob.js
- https://github.com/marmorkuchen-net/osc-js
- https://github.com/panavrin/livewriting