Skip to content

Instantly share code, notes, and snippets.

View rumblesan's full-sized avatar

Guy John rumblesan

View GitHub Profile
@rumblesan
rumblesan / user-info-extending.scala
Last active December 19, 2015 01:19
So typeclasses in scala are pretty cool...
case class UserInfo(name: String, email: String)
case class PaidUser(id: Long, name: String, email: String, payments: Double)
object PaidUser {
class PaidUserExtended(user: PaidUser) {
def userInfo: UserInfo = UserInfo(user.name, user.email)
}
@rumblesan
rumblesan / Basic.hs
Last active January 7, 2016 12:03
Code examples for Functional Talk
data Car = Car {
parcels :: Int,
driverName :: String,
isInsured :: Boolean
}
data Bicycle = Bicycle {
parcels :: Int,
riderName :: String,
isFixie :: Boolean
package com.rumblesan.marsrover
import cats._
import cats.instances.list._
import cats.instances.either._
import Commands.Command
import Headings.Heading
case class Mission(startX: Int, startY: Int, startHeading: Heading, commands: List[Command])
@rumblesan
rumblesan / takeaway.md
Last active December 9, 2020 16:51
Take away doc for the HipHop and Code workshop
s = Server.local
s.boot
b = Buffer.read(s, "/Users/guy/src/grains/sounds/vox.wav");
(
SynthDef("mygrains", {
arg trate = 1, bufnum = 0;
@rumblesan
rumblesan / info.md
Last active February 19, 2019 14:37
Improviz Testing

Hey, I'm asking people to do me a favour and check the cross platform builds of Improviz.

It should be really easy, and is much appreciated.

First, go download the right build from the release on GitHub. https://github.com/rumblesan/improviz/releases

Unzip that to somewhere, browse to the folder in your terminal of choice, and then run the improviz executable. (Double clicking seems to do some weird stuff around changing the working directory. Should be fixed in a later version.)

var ctx = new AudioContext();
var osc1 = audioCtx.createOscillator();
osc1.type = 'square';
osc1.frequency.setValueAtTime(440, ctx.currentTime);
osc1.start();
var osc2 = audioCtx.createOscillator();
osc2.type = 'square';
@rumblesan
rumblesan / movement-study1.pz
Created August 4, 2019 21:31
Improviz movement studies
stroke(0, 200, 255)
noFill()
move(3, -2, 0)
func cycle(speed, delta, scale, &b)
x = sin(time*speed) * scale
y = sin(time*speed*delta) * scale
move(x, y, 0)
if (!isNull(b))
b()

Digipro SYSEX Format

Always 7027 bytes total

Start Value Bytes Description

0 0xF0 1 SYSEX Start 1 0x00 1 Europe/USA ID 2 0x20 1 Europe ID 3 0x3C 1 Elektron Music Machines MAV ID