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 click
at 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 inBLUE
colorrgb(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.js
first. in order to send OSC out to host.