diff --git a/beatDetectTester.ck b/beatDetectTester.ck index 1421e24..1a80c7c 100644 --- a/beatDetectTester.ck +++ b/beatDetectTester.ck @@ -9,6 +9,12 @@ Event e; spork ~ beater.listen(e); 1::samp => now; + +OscOut osc; +("localhost", 8000) => osc.dest; +osc.start("/takeoff").send(); +osc.start("/move").add(0.0).add(0.0).add(3.0).add(2).send(); + while(true) { e => now; 1.0 => imp.next; diff --git a/beatTap.ck b/beatTap.ck index cf047f2..e06e56b 100644 --- a/beatTap.ck +++ b/beatTap.ck @@ -1,34 +1,7 @@ -class BeatDetector { - time events[]; - int n; - int currentEvent; - fun void windowSize(int count) { - new time[count] @=> events; - for (0 => int i; i < count; i++) { - now => events[i]; - } - count => n; - 0 => currentEvent; - } - fun void event() { - now => events[currentEvent % n]; - currentEvent++; - } - fun dur interval() { - dur diffs; - for (currentEvent => int i; i < currentEvent + n - 1; i++) { - i % n => int e0; - (i + 1) % n => int e1; - events[e1] - events[e0] +=> diffs; - } - return diffs / n; - } -} - public class BeatTapper { Hid kbd; HidMsg msg; - BeatDetector bd; + BeatTimer bd; fun void listen(int device) { kbd.openKeyboard(device); 5 => bd.windowSize; diff --git a/beatTimer.ck b/beatTimer.ck new file mode 100644 index 0000000..1484c01 --- /dev/null +++ b/beatTimer.ck @@ -0,0 +1,26 @@ +public class BeatTimer { + time events[]; + int n; + int currentEvent; + fun void windowSize(int count) { + new time[count] @=> events; + for (0 => int i; i < count; i++) { + now => events[i]; + } + count => n; + 0 => currentEvent; + } + fun void event() { + now => events[currentEvent % n]; + currentEvent++; + } + fun dur interval() { + dur diffs; + for (currentEvent => int i; i < currentEvent + n - 1; i++) { + i % n => int e0; + (i + 1) % n => int e1; + events[e1] - events[e0] +=> diffs; + } + return diffs / n; + } +} \ No newline at end of file diff --git a/runtap.ck b/runtap.ck index 279c6c3..cbe0cc2 100644 --- a/runtap.ck +++ b/runtap.ck @@ -1,2 +1,3 @@ +Machine.add(me.dir() + "/beatTimer.ck"); Machine.add(me.dir() + "/beatTap.ck"); Machine.add(me.dir() + "/tapTester.ck"); \ No newline at end of file