A live coding environment that allows realtime collaboration through a web browser.
Inspired by other live coding systems such as:
Install deno.
Run server:
deno run --allow-net --allow-read server.ts
Go to http://localhost:8000/
in a browser.
I just started working on this so basically nothing is implemented yet :(
- Implement backend with syncing
- implement differential syncing
- Add features to user API
-
silence function
-
sequence manipulation through decorators and dot operators
e.g. seq("c4 e4 g4").shuffle().half() this would be a wrapper around: new HalfSequence(new ShuffleSequence(new ListSequence(...)))
-
configuration of options such as cycles per second
-
set volume of each named oscillator/track
-
envelope for volume and filter
-
LFOs
-
effects
-
samples
-
add support for parsing midi note numbers (e.g. 60 for middle C)
- this may be more intuitive for people who don't know music theory
-
- UI improvements
- don't crash or stop music when an error occurs
- cancel scheduled events and re-run scheduling (after state is restored) after an exception is thrown
- display error messages from user code in html page rather than in the console
- make error messages more meaningful
- this can be done by verifying the arguments of user functions such as play() rather than allowing any invalid arguments to cause exceptions to be thrown later.
- show other users' cursors
- keyboard shortcuts
- syntax highlighting
- Documentation
- Tutorial/walkthrough
- Code overview
- chooseRand
- join (concatenates 2 sequences)
- times
- divide
- every(n)
- shuffle
- reverse
- chance(x) (will play the sequence with a probability x)
- chord("c4 e4 g4") (plays notes simultaneously)
- euclidean
- microtonal notes, non-western scales