Skip to content

Instantly share code, notes, and snippets.

View kn0ll's full-sized avatar
🏠
Working from home

Nic Luciano kn0ll

🏠
Working from home
View GitHub Profile
define([
'Audiolet'
], (
Audiolet
) => {
class Mixer extends AudioletGroup {
constructor(audiolet) {
super(audiolet, 1, 1);
@kn0ll
kn0ll / blurbcloud.py
Created September 12, 2015 07:19
super hacky script for taking a song off soundcloud and creating a new version where the computer incessantly reads user comments over the audio
import random
import urllib
import urllib2
import soundcloud
import subprocess
from pydub import AudioSegment
def get_track(client_id, sc_url):
client = soundcloud.Client(client_id=client_id)
track = client.get('/resolve', url=sc_url)
@kn0ll
kn0ll / config.ru
Created October 30, 2010 04:46
google image search proxy for hi-res movie posters
require 'movies'
run Sinatra::Application
@kn0ll
kn0ll / grabby.rb
Created October 30, 2010 04:47
small ruby server to show a random tinygrab image
require 'sinatra'
require 'open-uri'
get '/' do
tryImg
end
def tryImg
rand = ''
@kn0ll
kn0ll / satellite.php
Last active September 26, 2015 07:48
connect-style middleware handling in php.
<?php
namespace satellite;
class Request {
public $method;
public $url;
public $headers;
@kn0ll
kn0ll / middleware.coffee
Last active October 5, 2015 17:58
dead simple connect-style middleware routing.
http = require('http')
server = http.createServer()
server.middleware = []
server.use = (middleware) ->
@middleware.push middleware
server.on 'request', (req, res) ->
@kn0ll
kn0ll / waveform.js
Last active October 9, 2015 05:28
a backbone view for creating a waveform png from an audio buffer.
var BufferDrawer = Backbone.View.extend({
initialize: function(options) {
this.buffer = options.buffer;
return Backbone.Model.prototype.initialize.apply(this, arguments);
},
draw: function() {
var channels = this.buffer.channels,
@kn0ll
kn0ll / graph.js
Last active October 10, 2015 04:57
a directed tick-based "streaming" graph. used for an audio processing graph, for example.
// this is a directed graph data structure- with the unique property that it is
// intended to handle the flow of data upstream in a clock based system.
// streaming audio through a graph of nodes with variable inputs and outputs, for instance.
// an `Edge` behaves as a relation between two nodes.
// the edge is saved on both connected nodes for reference.
var Edge = function(fromNode, fromIndex, toNode, toIndex) {
this.fromNode = fromNode;
this.fromIndex = fromIndex;
this.toNode = toNode;
@kn0ll
kn0ll / extend.js
Created September 15, 2012 09:24
backbone's class inheritance isolated to a single function.
var extend = (function() {
var breaker = {};
var has = function(obj, key) {
return hasOwnProperty.call(obj, key);
};
var each = function(obj, iterator, context) {
if (obj == null) return;
@kn0ll
kn0ll / keyboard.coffee
Last active December 10, 2015 22:58
a way to reflect keyboard state as a backbone model.
define [
'zepto',
'backbone'
], ($, Backbone) ->
# a singleton backbone.model whose
# attributes represent keyboard state
new class extends Backbone.Model
# bind keyboard events to model state