- Connect Makey Makey to Raspberry Pi
- Run node.js on a computer with speakers
- Open website connecting to serving that will receive sound via websocket
Thank you Code Club http://codeclub-pi-hack.eventbrite.com/
Thank you Code Club http://codeclub-pi-hack.eventbrite.com/
| var app = require('express').createServer(), io = require('socket.io').listen(app); | |
| var url = require("url"); | |
| globalsocket = "XXX"; | |
| io.set('log level', 1); // reduce logging | |
| app.listen(3000); | |
| app.get('/', function (req, res) { | |
| res.sendfile(__dirname + '/index.html'); | |
| }); | |
| app.get('/send', function (req, res) { | |
| res.sendfile(__dirname + '/index-send.html'); | |
| }); | |
| app.get('/cool', function (req, res) { | |
| res.sendfile(__dirname + '/index-get.html'); | |
| }); | |
| app.get("/sound", function(req, res) { | |
| console.log("GET /sound - what is my globalsocket - " + globalsocket.id); | |
| var url_parts = url.parse(req.url, true); | |
| var query = url_parts.query; | |
| if (globalsocket != "XXX") { | |
| console.log("GET /sound wysylam: " + query.name); | |
| io.sockets.emit('chat', { name: query.name }); | |
| } else { | |
| console.log("NIE MA GLOBAL SOCKETU :((("); | |
| } | |
| res.end('Sound deployed\n'); | |
| }); | |
| io.sockets.on('connection', function (socket) { | |
| globalsocket = socket; | |
| console.log("[server] onConnection globalsocket.id: " + globalsocket.id) | |
| socket.emit('init', { message: '[initialized X]'}); | |
| socket.on('chat', function (data) { | |
| console.log("[server] onChat") | |
| console.log(data); | |
| socket.broadcast.emit('chat', { name: data.name, text : data.text }); | |
| }); | |
| }); |
| <html> | |
| <head> | |
| <title>index.html</title> | |
| <meta charset="utf-8"> | |
| <style> | |
| #console > textarea { | |
| background: black; | |
| color: white; | |
| font-family: "Courier"; | |
| width: 300px; | |
| height: 300px; | |
| float:left; | |
| outline: none; | |
| border: 5px dotted green; | |
| } | |
| </style> | |
| <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script> | |
| <script src="socket.io.js"></script> | |
| <script> | |
| socket = io.connect('10.55.0.86:3000'); | |
| socket.on('init', function (data) { | |
| log(data.message); | |
| }); | |
| socket.on('chat', function (data) { | |
| log("RECEIVED (LOCAL SOUND) => " + data.name); | |
| var audio = new Audio('wavs/' + data.name + '.wav'); | |
| audio.play(); | |
| }); | |
| </script> | |
| <script> | |
| $(document).ready(function(){ | |
| $console = $("#console > textarea"); | |
| }); | |
| function log(text){ | |
| $console.val($console.val() + text + "\n"); | |
| } | |
| </script> | |
| </head> | |
| <body> | |
| <div id="console"> | |
| <textarea rows="5" cols="80"></textarea> | |
| </div> | |
| </body> | |
| </html> |
| <!DOCTYPE html> | |
| <head> | |
| <meta charset="utf-8"/> | |
| <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/> | |
| <title>PiPlay</title> | |
| <meta name="description" content=""/> | |
| <meta name="viewport" content="width=device-width"/> | |
| <link rel="stylesheet" href="styles/main.css"/> | |
| <script src="scripts/vendor/modernizr.min.js"></script> | |
| <script src="scripts/vendor/jquery.min.js"></script> | |
| <script src="scripts/vendor/jquery-ui.js"></script> | |
| <script src="scripts/vendor/socket.io.js"></script> | |
| <script> | |
| var keys={space:32, left: 37, up: 38, right: 39, down: 40}; | |
| history = new Array(); | |
| previous = new Date().getTime(); | |
| state = 1; // first player | |
| function sound(wav) { | |
| $.ajax({ | |
| url: "http://10.55.0.86:3000/sound", | |
| data: { name: wav }, | |
| success: function(x) { | |
| console.log("SUCCESS " + x); | |
| } | |
| }); | |
| } | |
| $(function() { | |
| $(document).on("keydown", function(event) { | |
| if (event.keyCode == keys.left) { | |
| sound("wav1"); $("#zone3").toggleClass("green").toggleClass("green", 400); history.push(1); | |
| } else if (event.keyCode == keys.right) { | |
| sound("wav2"); $("#zone4").toggleClass("orange").toggleClass("orange", 400); history.push(2); | |
| } else if (event.keyCode == keys.up) { | |
| sound("wav3"); $("#zone1").toggleClass("pink").toggleClass("pink", 400); history.push(3); | |
| } else if (event.keyCode == keys.down) { | |
| sound("wav4"); $("#zone2").toggleClass("yellow").toggleClass("yellow", 400); history.push(4); | |
| } else if (event.keyCode == keys.space) { | |
| sound("next"); | |
| historySave = history; | |
| history = new Array(); | |
| state = (state == 1) ? 2 : 1; | |
| } | |
| $("#zone1").click(function() {sound("wav3"); $("#zone1").toggleClass("pink").toggleClass("pink", 400); }); | |
| $("#zone2").click(function() {sound("wav4"); $("#zone2").toggleClass("yellow").toggleClass("yellow", 400); }); | |
| $("#zone3").click(function() {sound("wav1"); $("#zone3").toggleClass("green").toggleClass("green", 400); }); | |
| $("#zone4").click(function() {sound("wav2"); $("#zone4").toggleClass("orange").toggleClass("orange", 400); }); | |
| }) | |
| }); | |
| </script> | |
| </head> | |
| <body> | |
| <a class="zone" id="zone1"></a> | |
| <a class="zone" id="zone2"></a> | |
| <div class="cleaner"></div> | |
| <a class="zone" id="zone3"></a> | |
| <a class="zone" id="zone4"></a> | |
| </body> | |
| </html> |