Skip to content

Instantly share code, notes, and snippets.

View grifdail's full-sized avatar

Julien Berthou grifdail

View GitHub Profile
@grifdail
grifdail / realtime.js
Last active August 29, 2015 13:58
Everything you need to make realtime connection between peer (perfect for simple multiplayer game with no cheat protection) with socket.io and express in 53 line (plus a chat in the console & a bunny)
realtime
function superAlias(that, alias, fn) {
var old = that[alias];
that[alias] = function () {
old.apply(this,arguments);
fn.apply(this, arguments);
}
}

Twitter official app keys

Twitter for iPhone

Consumer key: IQKbtAYlXLripLGPWd0HUA
Consumer secret: GgDYlkSvaPxGxC4X8liwpUoqKwwr3lCADbz8A7ADU

Twitter for Android

Consumer key: 3nVuSoBZnx6U4vzUxf5w
Consumer secret: Bcs59EFbbsdF6Sl9Ng71smgStWEGwXXKSjYvPVt7qys

Twitter for Google TV

Consumer key: iAtYJ4HpUVfIUoNnif1DA

{"pistes":[{"type":"tri","notes":[{"n":0,"o":3,"g":1,"type":0},{"n":0,"o":3,"g":1,"type":1},{"n":0,"o":3,"g":1,"type":1},{"n":0,"o":3,"g":1,"type":1},{"n":4,"o":3,"g":1,"type":0},{"n":4,"o":3,"g":1,"type":1},{"n":4,"o":3,"g":1,"type":1},{"n":4,"o":3,"g":1,"type":1},{"n":2,"o":3,"g":1,"type":0},{"n":2,"o":3,"g":1,"type":1},{"n":2,"o":3,"g":1,"type":1},{"n":2,"o":3,"g":1,"type":1},{"n":5,"o":3,"g":1,"type":0},{"n":5,"o":3,"g":1,"type":1},{"n":5,"o":3,"g":1,"type":1},{"n":5,"o":3,"g":1,"type":1}],"volume":"00.5","harmonic":0},{"type":"sqr","notes":[{"n":0,"o":0,"g":0,"type":0},{"n":4,"o":3,"g":1,"type":0},{"n":4,"o":3,"g":1,"type":0},{"n":4,"o":3,"g":1,"type":0},{"n":0,"o":0,"g":0,"type":0},{"n":7,"o":3,"g":1,"type":0},{"n":7,"o":3,"g":1,"type":0},{"n":7,"o":3,"g":1,"type":0},{"n":5,"o":3,"g":0,"type":0},{"n":5,"o":3,"g":1,"type":0},{"n":5,"o":3,"g":1,"type":0},{"n":5,"o":3,"g":1,"type":0},{"n":0,"o":0,"g":0,"type":0},{"n":9,"o":3,"g":1,"type":0},{"n":9,"o":3,"g":1,"type":0},{"n":9,"o":3,"g":1,"type":0}],"volume
@grifdail
grifdail / Only the drums
Created August 19, 2014 20:32
Only the drum
{"pistes":[{"type":"arp","notes":[{"n":2,"o":4,"g":0.5,"type":3},{"n":2,"o":4,"g":2,"type":0},{"n":2,"o":4,"g":0.5,"type":3},{"n":4,"o":4,"g":2,"type":0},{"n":2,"o":4,"g":0.5,"type":3},{"n":9,"o":4,"g":2,"type":0},{"n":2,"o":4,"g":0.5,"type":3},{"n":4,"o":4,"g":2,"type":0},{"n":2,"o":4,"g":0.5,"type":3},{"n":2,"o":4,"g":2,"type":0},{"n":1,"o":5,"g":0.5,"type":0},{"n":4,"o":4,"g":2,"type":0},{"n":2,"o":4,"g":0.5,"type":3},{"n":9,"o":4,"g":2,"type":0},{"n":2,"o":4,"g":0.5,"type":3},{"n":4,"o":4,"g":2,"type":0},{"n":2,"o":4,"g":0.5,"type":3},{"n":2,"o":4,"g":2,"type":0},{"n":2,"o":4,"g":0.5,"type":3},{"n":4,"o":4,"g":2,"type":0},{"n":2,"o":4,"g":0.5,"type":3},{"n":9,"o":4,"g":2,"type":0},{"n":2,"o":4,"g":0.5,"type":3},{"n":4,"o":4,"g":2,"type":0},{"n":2,"o":4,"g":0.5,"type":3},{"n":2,"o":4,"g":2,"type":0},{"n":1,"o":5,"g":0.5,"type":0},{"n":4,"o":4,"g":2,"type":0},{"n":2,"o":4,"g":0.5,"type":3},{"n":9,"o":4,"g":2,"type":0},{"n":2,"o":4,"g":0.5,"type":3},{"n":4,"o":4,"g":2,"type":0}],"volume":"000.5","harmonic":0
@grifdail
grifdail / gist:e7ec16259514d6aad7ca
Last active August 29, 2015 14:05
MarkovChain music generation for wavepot
var transpose = 24;
var bpm = 240; // Beats per minute
var spb = 60/bpm; // Second per beat
function note(n, octave){
n += transpose;
return Math.pow(2, (n - 33 + (12 * (octave || 0))) / 12) * 440;
@grifdail
grifdail / mk.js
Last active August 29, 2015 14:05
Markov music improved
var transpose = 24;
var bpm = 240; // Beats per minute
var spb = 60/bpm; // Second per beat
function note(n, octave){
n += transpose;
return Math.pow(2, (n - 33 + (12 * (octave || 0))) / 12) * 440;
@grifdail
grifdail / CoordinateConverter.js
Last active August 29, 2015 14:06
Change coordinate in 2D and 3D
function carToPol(vec) {
var r = Math.sqrt(vec.x * vec.x + vec.y * vec.y);
var a = Math.atan2(vec.y, vec.x);
return {
r:r,
a:a
}
}
function polToCar (coor) {
@grifdail
grifdail / fixedFramerate.js
Created September 29, 2014 11:27
Framerate fix
function loop(framerate,update,draw) {
//Update and draw are callbacK function
var requestedInterval = 1000/framerate;
var timeSinceLastUpdate = 0;
var lastFrameTimeStamp = 0;
function loopFunction() {
requestAnimationFrame(loopFunction);
var now = Date.now();
{"pistes":[{"type":"sqr","notes":[{"n":0,"o":4,"g":1,"type":0},{"n":4,"o":4,"g":0,"type":0},{"n":0,"o":4,"g":1,"type":0},{"n":4,"o":4,"g":0,"type":0},{"n":0,"o":4,"g":1,"type":0},{"n":4,"o":4,"g":0,"type":0},{"n":0,"o":4,"g":1,"type":0},{"n":4,"o":4,"g":0,"type":0},{"n":5,"o":4,"g":1,"type":0},{"n":5,"o":4,"g":0,"type":0},{"n":5,"o":4,"g":1,"type":0},{"n":7,"o":4,"g":0,"type":0},{"n":5,"o":4,"g":1,"type":0},{"n":7,"o":4,"g":0,"type":0},{"n":5,"o":4,"g":1,"type":0},{"n":7,"o":4,"g":0,"type":0},{"n":7,"o":4,"g":1,"type":0},{"n":4,"o":4,"g":0,"type":0},{"n":7,"o":4,"g":1,"type":0},{"n":4,"o":4,"g":0,"type":0},{"n":7,"o":4,"g":1,"type":0},{"n":4,"o":4,"g":0,"type":0},{"n":7,"o":4,"g":1,"type":0},{"n":4,"o":4,"g":0,"type":0},{"n":5,"o":4,"g":1,"type":0},{"n":11,"o":4,"g":0,"type":0},{"n":5,"o":4,"g":1,"type":0},{"n":7,"o":4,"g":0,"type":0},{"n":5,"o":4,"g":1,"type":0},{"n":0,"o":5,"g":0,"type":0},{"n":5,"o":4,"g":1,"type":0},{"n":7,"o":4,"g":0,"type":0}],"volume":0.1,"harmonic":0},{"type":"sin","notes":[{"n":0,"o"