From f03abb6ae02121016db8e65c60ae73ef461ce6a2 Mon Sep 17 00:00:00 2001 From: eleventigers Date: Tue, 31 Jul 2012 20:17:37 +0100 Subject: [PATCH 1/7] Added m4l device which will be used to send udp packets to Peekable node server --- plugin/toPeekable.amxd | Bin 0 -> 4569 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 plugin/toPeekable.amxd diff --git a/plugin/toPeekable.amxd b/plugin/toPeekable.amxd new file mode 100644 index 0000000000000000000000000000000000000000..b260b9e8b444abe47eb9021fc3c83b8920e30e7e GIT binary patch literal 4569 zcmd5=&5qMB5bl9XSK0$_U`3qJvP#-bcb6NyMuj3Laa)69N3l~D5D&)NF*8o;Mxo0B zfzm^NX6(uMn{R$xUe%jtv)Qb|mv9`v3QjvpEXp(MBq< z7mbxhqcpi9DX;4z;oPsCM-_i>X!DAefk0|6h&w?e_OiE?qN%T!7v5we3WrZvvzxo? z_=+XTEq$cP4SwFmi|d%Z^J`5lbXXswKD;HX`>-5?u3)x$29H^Agj8OnnKV? zgyvv&XN$%tML>A#UcMj6ONebDKFZSV=yU-!SSsrt>8Qh^lv`oxdA-E(t;L=FZ}3)- zV9n+|$L0}8aS=#5+969JTqjY7g|wi@IO*ew3Q5$6O#c4WYUMpcam61B#jSToi;tiW zO5Fmlm2jl>kmDW@o7VMmk2uP`(0!^YL~9mpl;Lo2Pi9;}X(#nI3#3jKz~U>mNSFAL z#Ki9;@B+6v@!;`$Ned$6C}k9V!OZ$MxTOJ_A#QDzLop%NpuYp$0zO0B0-ht>ke*j8 z%DLVS(Q6>#oM1_aK z0NtZ?FCa8T&NmM{=IP8^uBfLc3y;o;s@9e@wCIvS2j^;MtYbIJIF8Q-({HthQ!p(L z1!_z%NKmYEPa|5A0J(nJA(Y&UYY52hZ0Mb;alb{ffa(~%C-v18fwqV}4^I#f+H{HK zgCTGXAJ{b|=17AMOum?Jy4!+f8mo z1Gf|g&eyHW{D^?J88wbtKW!tH68xs6%Q#e$x*TSgCNss z!PdkWLSLUO$S___Ps6mcdgz6JfZ^(|M7g&*iH9AhM^WyJPbuJ!0VoN@r>x-cKMYoz XHS4tsZtb9=+YOk2>)quAyv@D?Lr?SB literal 0 HcmV?d00001 From 49e22811f7901cff42ac54c84b270b8c946c485a Mon Sep 17 00:00:00 2001 From: eleventigers Date: Tue, 31 Jul 2012 20:45:42 +0100 Subject: [PATCH 2/7] added udp socket to test stream from max4live --- Vagrantfile | 1 + app/server.js | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/Vagrantfile b/Vagrantfile index 1b64730..9d41cf7 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -2,6 +2,7 @@ Vagrant::Config.run do |config| config.vm.box = "base" config.vm.forward_port 3000, 3000 + config.vm.forward_port 43000,43000,{ :protocol => "udp"} config.vm.share_folder "app", "/home/vagrant/app", "app" diff --git a/app/server.js b/app/server.js index 38287f5..1d7e789 100644 --- a/app/server.js +++ b/app/server.js @@ -2,7 +2,8 @@ var connect = require('connect') , express = require('express') , io = require('socket.io') - , port = (process.env.PORT || 3000); + , port = (process.env.PORT || 3000) + , dgram = require("dgram"); //Setup Express var server = express.createServer(); @@ -16,6 +17,21 @@ server.configure(function(){ server.use(server.router); }); +var udpsock = dgram.createSocket("udp4"); + +udpsock.on("message", function (msg, rinfo) { + console.log("server got: " + msg + " from " + + rinfo.address + ":" + rinfo.port); +}); + +udpsock.on("listening", function () { + var address = udpsock.address(); + console.log("server listening " + + address.address + ":" + address.port); +}); + +udpsock.bind(43000); + //setup the errors server.error(function(err, req, res, next){ if (err instanceof NotFound) { From 0186588b86620533f34992a75f0186f3830b8a45 Mon Sep 17 00:00:00 2001 From: eleventigers Date: Wed, 1 Aug 2012 02:13:45 +0100 Subject: [PATCH 3/7] filtering crap that Max4Live dicts format to JSON Node receives dirty string that gets cleaned and then parsed back to JSON --- app/server.js | 21 +++++++++++++++++---- app/static/js/script.js | 3 ++- plugin/replaceNewline.js | 5 +++++ plugin/toPeekable.amxd | Bin 4569 -> 7796 bytes 4 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 plugin/replaceNewline.js diff --git a/app/server.js b/app/server.js index 1d7e789..af84063 100644 --- a/app/server.js +++ b/app/server.js @@ -19,10 +19,10 @@ server.configure(function(){ var udpsock = dgram.createSocket("udp4"); -udpsock.on("message", function (msg, rinfo) { - console.log("server got: " + msg + " from " + - rinfo.address + ":" + rinfo.port); -}); +// udpsock.on("message", function (msg, rinfo) { +// console.log("server got: " + msg + " from " + +// rinfo.address + ":" + rinfo.port); +// }); udpsock.on("listening", function () { var address = udpsock.address(); @@ -57,9 +57,22 @@ server.listen( port); var io = io.listen(server); io.sockets.on('connection', function(socket){ console.log('Client Connected'); + udpsock.on("message", function (msg, rinfo) { + + var string = msg.toString().replace(/(\u0000)/gm,""); + var cleanString = string.slice(0,string.length-1); + var decodedString = JSON.parse(cleanString); + + console.log("server got: " + decodedString.volume + " from " + + rinfo.address + ":" + rinfo.port); + // socket.broadcast.emit('server_message',dat); + socket.emit('server_message', decodedString); + }); socket.on('message', function(data){ socket.broadcast.emit('server_message',data); socket.emit('server_message',data); + + }); socket.on('disconnect', function(){ console.log('Client Disconnected.'); diff --git a/app/static/js/script.js b/app/static/js/script.js index f607810..8734544 100644 --- a/app/static/js/script.js +++ b/app/static/js/script.js @@ -10,6 +10,7 @@ $(document).ready(function() { }); socket.on('server_message', function(data){ - $('#receiver').append('
  • ' + data + '
  • '); + $('#receiver').append('
  • ' + data + '
  • '); + console.log(data); }); }); \ No newline at end of file diff --git a/plugin/replaceNewline.js b/plugin/replaceNewline.js new file mode 100644 index 0000000..7002e0f --- /dev/null +++ b/plugin/replaceNewline.js @@ -0,0 +1,5 @@ +function replace(str) { + var result = ""; + result = str.replace(/(\r\n|\n|\r|\t|\s)/gm,""); + outlet(0, result) +} \ No newline at end of file diff --git a/plugin/toPeekable.amxd b/plugin/toPeekable.amxd index b260b9e8b444abe47eb9021fc3c83b8920e30e7e..351daf92e0ffc6fe5236d5990a1ba691a9caabdb 100644 GIT binary patch delta 1135 zcmY*Y&ubGw6mB*)ZPKJoz&5qkuxyJU#E_ZYO?HdWBG`i#L5R@8Lfs@oyK%F-O}4)* zt$1lY2vz1Fco0Mn-n8n)i+J_ctLVi)LFgagyxHtF?qO%%eD8hldvD(SoH@Jk{9-CL zFficxjrCgLMd4YpS}m1}qM|7$pIt#fI(?El%vNOtr?ScyO{3rA(^;=WJmNG(w%BHa zNc6#If&LIy1f)SwJ`B>z5R1wczG(Dmx;pNe9kWe*(pe>rS+|KK&WUAunw}nSbwk3t zWZSkJQfhVks4M+?Fy@@93VM>h+ud!~UAxa)rhgJgISp&PreMK}PIrc;^*zHdq%GIp zY!lec!B4~RH;m#r#!vdd{fIuMfRX+fw061q#Kz#^bWAFt-$Vr0~N4X_`NX(Y245Q zgd1=c@Xu%Ovo^z?6R07-S%^*z&H=Wd4Ko0h$8IZe_u43Ch9@XS`(L~b$D-dwXBDGc;?y@0!R uYq=JkTI~_fwi=cXe5_T8@wrIE|I=M+?~o`gBD0pvMTx85&!p(rocIrOlR3%& delta 397 zcmexjb5nVO2p0no6qF=q>=c|R*TZRIp=Y3@U}$K*adSQsquJz-tfrF#xFseRFiTH% z;AfkBjz^Bm(8v;`$jH=q@-0E-$&$QvOlGE&6L};iZ{VE{mo>MX9LU$s2$B$={DE&4 zT*Am4B*A2A36`;CFA#tlXl!f%GS|Xl@;-JM{@ldklGLKyR3M?CVyHAZk*}P|)EubC zWO9IjsUS>`nF-jzMi!GF3d&60B+w7E@guA6VNFT4=0#nO0kmB>e+Spni+Ah|}#5MXHdi+clwKx|VG8)PDo1Cr+z w^I|hKQvwFv Date: Wed, 1 Aug 2012 02:16:21 +0100 Subject: [PATCH 4/7] added Ableton live set project for tests --- .../Ableton Project Info/AProject.ico | Bin 0 -> 26694 bytes .../Ableton Project Info/Project8_1.cfg | Bin 0 -> 535 bytes livesets/peekableTestSet Project/Desktop.ini | 5 +++++ .../peekableTestSet Project/peekableTestSet.als | Bin 0 -> 14575 bytes 4 files changed, 5 insertions(+) create mode 100644 livesets/peekableTestSet Project/Ableton Project Info/AProject.ico create mode 100644 livesets/peekableTestSet Project/Ableton Project Info/Project8_1.cfg create mode 100644 livesets/peekableTestSet Project/Desktop.ini create mode 100644 livesets/peekableTestSet Project/peekableTestSet.als diff --git a/livesets/peekableTestSet Project/Ableton Project Info/AProject.ico b/livesets/peekableTestSet Project/Ableton Project Info/AProject.ico new file mode 100644 index 0000000000000000000000000000000000000000..65c776e4c96f5f14df8145164c06aa892c55d9bb GIT binary patch literal 26694 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 Qv<=Z##8nu*vi*nrAKRgbJ^%m! literal 0 HcmV?d00001 diff --git a/livesets/peekableTestSet Project/Ableton Project Info/Project8_1.cfg b/livesets/peekableTestSet Project/Ableton Project Info/Project8_1.cfg new file mode 100644 index 0000000000000000000000000000000000000000..e68235bf1cdc29259ab4184ec1c7b93e8c244448 GIT binary patch literal 535 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 literal 0 HcmV?d00001 From d9fc518e0030a2f84542c04eb7d01f99209f322b Mon Sep 17 00:00:00 2001 From: eleventigers Date: Thu, 2 Aug 2012 01:25:03 +0100 Subject: [PATCH 5/7] amazingly "fast" js script for m4l live plugin Began to get all data from Ableton API via js, unstable. --- app/server.js | 4 +- plugin/liveAPI_feed.js | 97 +++++++++++++++++++++++++++++++++++++++++ plugin/toPeekable.amxd | Bin 7796 -> 5964 bytes 3 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 plugin/liveAPI_feed.js diff --git a/app/server.js b/app/server.js index af84063..6f029a9 100644 --- a/app/server.js +++ b/app/server.js @@ -63,8 +63,8 @@ io.sockets.on('connection', function(socket){ var cleanString = string.slice(0,string.length-1); var decodedString = JSON.parse(cleanString); - console.log("server got: " + decodedString.volume + " from " + - rinfo.address + ":" + rinfo.port); + //console.log("server got: " + decodedString.volume + " from " + + //rinfo.address + ":" + rinfo.port); // socket.broadcast.emit('server_message',dat); socket.emit('server_message', decodedString); }); diff --git a/plugin/liveAPI_feed.js b/plugin/liveAPI_feed.js new file mode 100644 index 0000000..a6e4b77 --- /dev/null +++ b/plugin/liveAPI_feed.js @@ -0,0 +1,97 @@ +autowatch = 1; +outlets = 1; + +var api = new LiveAPI(test_callback, "live_set"); + + +function bang() +{ + +var all = new Dict(); +all.name = "super"; +var groups = api.children; + + for (var i = 0; i < groups.length-1; i++){ + var g = getSetGroup(groups[i]); + all.set(groups[i],g); + } + + +} + + + +function getSetGroup(groupPath){ + + var group = new Dict; + //group.name = groupPath; + + var childrenCount = api.getcount(groupPath); + + for (var i = 0; i < childrenCount; i++){ + + var child = new Dict; + + api.goto("live_set "+groupPath+" "+i); + + var info = api.info; + var id = "id"+api.id; + var props = extractProperties(info); + + for (var j = 0; j < props.length; j++){ + var prop = props[j]; + var value = api.get(prop); + child.set(prop, value); + + } + group.set(id, child); + } + + api.goto("live_set"); + return group; + +} + +function extractProperties(infoString){ + + var extracts = []; + + extract(infoString); + + function extract(string){ + var position = -1; + position = string.search("property"); + if (position == -1 ){ + return; + } + else { + var newString = string.slice(position+9, string.length); + var newLine = newString.search("\n"); + var foundProperty = newString.slice(0, newLine); + var onlyProperty = foundProperty.slice(0, foundProperty.search(" ")); + extracts.push(onlyProperty); + extract(newString); + } + } + return extracts; +} + +function jsobj_to_dict(o) { + var d = new Dict; + for (var key in o) { + var value = o[key]; + + if (!(typeof value === "string" || typeof value === "number")) { + value = jsobj_to_dict(value); + } + d.set(key, value); + } + return d; +} + + + +function test_callback(args){ + +} + \ No newline at end of file diff --git a/plugin/toPeekable.amxd b/plugin/toPeekable.amxd index 351daf92e0ffc6fe5236d5990a1ba691a9caabdb..bfb6bdfd52da66fa24eed25a2d7dd0161cf96aab 100644 GIT binary patch delta 726 zcmah`zi-n(6qcP*!342Imha-T9exbmpahg6n5t6T_L{nC>?m+r!ajbV}|!|AZ)Ty>ZSam9rzW)lvLn`XqQ8#2U(0?Oc9Wf4rJ z+R`+wH5&5?PxClWvUFq2w{n4BbL1|c!s`4>m53ca^sPFKO4rP&E2dCi@`xh%URi># zrB@0&-K8COh2f{4Gm4^8`mZVpps8ihI9paIJksm4c{UjAb675|l#(=uJLZkc5ek;% z1G&~KPG`Ms%%K9*AjG);6GJ)$63Kh;-h8TJi1oqDW}FUSb@8HEtO}%00bJ7T@{s4_ z3|;rU7R2*Uln5a`*e&0)n3zW*A_D8W3=Z}4rG*Ho&2CQfJWGYN zlZDl=b2P*|QB`pJ+s$LoiO*d8#x6zA7eG7n(ArNP^X2}njUCRn-MxvV2u*8mE;bmQgcc>Eij5MFSS%q{ cOo;y6#Xn;Ko;B*QZd3gd>KGP(+%hk2b}Lqu2>T z2muRa=m5G2At46DPzHn;`4=cUIIuX{Vo_AzWw5SPpp&^+^r$E1CogLILWT>a$%22c zTCHmRFzB@y{#(I^NAX#$>Zdi4Ia9nZ2EuXb$#4O_jy@K`clkWLOcf;yey0mE{huJU zFxbQut5a$TJwEDLidd{Ba?~ZFtEV9q@piqvD@IF{uWG}qiTzyC#TVu}zTv=$GMCC;4Wr7Pn9ztyarKXM0B`#qHzXlcI zDiUkxXsaH@tXqq_^~P<{WR6fxpHjy0rv=S6YlOXatf?z1g_D%UZN}Z_WlaZZY_T|y zMaqeF#5NpVr9QmLl&5PQ){UCHf4jl30f9&77Q|>H+>Thc&$?>Zi#xrz)?%n4V0{+A z*X$PG`|3M7(BJi;UNBK=I3Z=PlICC9#3qSt?gc%oa From a30b1394de3c1869c4ee4d88d6e85cef57ffdf84 Mon Sep 17 00:00:00 2001 From: Maciek Baron Date: Sun, 5 Aug 2012 17:47:40 +0100 Subject: [PATCH 6/7] Adding package description, post-setup script .gitignore now ignores the node_modules folder The Vagrantfile has been updated to run postsetup.sh which installs npm dependencies for our project and also mc (Midnight Commander), which I like to have in my environment package.json has been updated with a project name and description --- .gitignore | 3 ++- Vagrantfile | 2 ++ app/package.json | 4 ++-- postsetup.sh | 2 ++ 4 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 postsetup.sh diff --git a/.gitignore b/.gitignore index 7ffa479..e981fea 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *~ .DS_Store -.vagrant \ No newline at end of file +.vagrant +/app/node_modules \ No newline at end of file diff --git a/Vagrantfile b/Vagrantfile index 9d41cf7..6b2c999 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -22,4 +22,6 @@ Vagrant::Config.run do |config| } } end + # Do a few things after setup + config.vm.provision :shell, :path => "postsetup.sh" end diff --git a/app/package.json b/app/package.json index a25ee94..7eb792b 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { - "name": "YOUR-PROJECT-NAME-HERE", - "description": "YOUR PROJECT DESCRIPTION HERE", + "name": "Peekable-Server", + "description": "Server for Peekable", "author": "YOUR NAME ", "version": "0.0.1", "dependencies": { diff --git a/postsetup.sh b/postsetup.sh new file mode 100644 index 0000000..1145c8e --- /dev/null +++ b/postsetup.sh @@ -0,0 +1,2 @@ +apt-get install mc -y +su vagrant -c 'cd ~/app;npm install' \ No newline at end of file From 84c7bccf29829fd0b5537ec661c69e3a150306f7 Mon Sep 17 00:00:00 2001 From: eleventigers Date: Sat, 18 Aug 2012 12:37:46 +0100 Subject: [PATCH 7/7] enhancements to max4live plugin and its js script --- .../peekableTestSet.als | Bin 14575 -> 14262 bytes plugin/liveAPI_feed.js | 9 ++------- plugin/toPeekable.amxd | Bin 5964 -> 7023 bytes 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/livesets/peekableTestSet Project/peekableTestSet.als b/livesets/peekableTestSet Project/peekableTestSet.als index 40b6f46384c7b94009f97f4d2cebf09a936b185a..05b102e8b4566bdda1c1fc3cd01ef253ef46a70d 100644 GIT binary patch literal 14262 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 diff --git a/plugin/liveAPI_feed.js b/plugin/liveAPI_feed.js index a6e4b77..83e6f02 100644 --- a/plugin/liveAPI_feed.js +++ b/plugin/liveAPI_feed.js @@ -14,17 +14,13 @@ var groups = api.children; for (var i = 0; i < groups.length-1; i++){ var g = getSetGroup(groups[i]); all.set(groups[i],g); - } - - + } } - function getSetGroup(groupPath){ var group = new Dict; - //group.name = groupPath; var childrenCount = api.getcount(groupPath); @@ -91,7 +87,6 @@ function jsobj_to_dict(o) { -function test_callback(args){ - +function test_callback(args){ } \ No newline at end of file diff --git a/plugin/toPeekable.amxd b/plugin/toPeekable.amxd index bfb6bdfd52da66fa24eed25a2d7dd0161cf96aab..50fb18ac1b5679428d3cb9e008750f0d57300d7b 100644 GIT binary patch delta 639 zcmX@3_ug!R43od~M7bVrT|+}lJp&yDLu1p8TMC#apJNecPtMQHP0cHr9Ka<$`2xGd zFg_)JYeA|^&4($r+~SuPn4eSL+Z#FA8{$%?$?jD|SPGO+;L z2-a_iWR@Y=4uo07sd*`2vnDGun=l(07)%c25(B%ao!Jd&{z5L<$*-BSCa+@S=S(aq zDauSLElHicpG~g5EHS4vH9t*B!AgM>461p#APi2Wg2bZ4+|-iPqWF@^f>e+aV;yX= znR#WI#hFPtU?qlFl@w>>7nS4zO#_*tlvkRYlv<<&RB4E5S5AIjI=V`jt+l*dlN0F`5@x&QzG delta 205 zcmaEFc1CZ443m!dM7bU=BTExK104lJ1B;DY3z#N$?y2T!np