
an implementation on De Casteljau's algorithm,
an implementation on De Casteljau's algorithm, capable of sending MIDI (trigger), OSC to target client/server eg.SuperCollider (OSC only works in repl mode), NOTE: xen is backend-agnostic, Intentionally used for live performance. thus, no built-in audio engine is implemented.

video taken by Tentacle Workshop Bkk
Run
git clone https://github.com/karnpapon/xen.git
cd xen
npm install
npm run start
# in order to send OSC
# open new terminal tab.
cd bridge
npm install
node index.js
Keybinding
- play/pause:
spacebar - add new point:
cmd+left click - add point group:
Shift+n= spawn new point group. - remove point:
right clickat target point (make sure group is selected). - trigger first/last line
t, since cubic bezier calculated by four points. by nature the distance between point is basically a straight line. thus moving point cannot avoid colliding with first line(start) and last line(end). use this option to avoid trigger first/last line. - switch between point group:
tab, selected group will be highlighted inBLUEcolorrgb(0,0,255) - toggle control-line:
c= only current selected group,Shift+C= toggle all group. - toggle L-Point:
l= toggle even recursived points (collision inRED),Shift+L= toggle all points. - toggle R-point:
r= toggle odd recursive points (collision inBLUE),Shift+R= toggle all points.
File/Folder
- /src: main xen's sourcecode.
- /tool: for test sending msg(osc).
- /bridge: for receiving msg(osc) from browser and forward to target server.
IO
- midi.
- osc: Sends OSC message, NOTE run
node bridge/index.jsfirst. in order to send OSC out to host.