Tuesday, January 26, 2010

Upcoming lecture.

Hey friends!

so i've been asked to give a lecture this semester on the history of drum'n'bass. the topic is so broad that i'm having trouble getting it down to an hour or so ( i feel like i could talk all day about it....it maybe wouldn't be worth listening to all day, but i could talk that much....!) I think that at the end of the day, it might be one of my favorite genres of electronic music...the production advances in the last 6 years or so are incredible... music sounds soo good right now! damn. i think that i will be covering the start of jungle in the UK, and discussing the roots of the sound, but that i mostly want to focus on the development of the scene in america, and how dnb is now a part of the cultural psyche and reference library. you know, car chases, car advertisements, SCION, ect. it should be fun. if anyone reads this blog, and has some resources/thoughts on how to proceed, or just wants to talk about drum'n'bass or jungle (i like that ragga shit too) hit me up!

Respekt,
R

Tuesday, December 8, 2009

tvs

so i've been working on a video performance piece lately, involving 7 dumpstered tv's and a video camera. some of you (who know me) may have seen this before as an installation, or if you were lucky, in my attic as a performance. i've been trying to gain a mastery of the different positions that produce stable feedback forms, but this is proving difficult, as each tv has its own idiosyncratic character of feedback. this saturday i'll be performing at the Ostranenie magazine fundraiser concert/multimedia show LINK. i'll be performing with Dana Matthiessen, (cancer dance/white suns lots of cool band/projects) i'm not sure what were going to do exactly, but i'm looking forward to using the tvs for visuals rather than a projector. the obvious downside is that they are heavy and smaller than a projection screen, btu i'm into the fact that they are not so big, and straigt up the feedback is just infinitely better on a television. cant beat the ccd/crt combo. so come, support the cool arts kids at wes, and see some old school tweaking. holler.

Thursday, November 12, 2009

recent happenings

So, in y life lately.

Bought new computer: good.
Quit Deli job to pursue art related work: good!
Working maniacally on multiple artistic projects at once: good!
Broke rib falling off bike: bad.
Fell off bike again after healing: stupid.


I've found that two changes in attitude make life way sweeter. the first is to not settle. the second is to not worry. if you do the first one, you will never have to do the second one (unless you like to, whatever.) I don't like worrying and stressing, so i've decided that it will no longer (intentionally) be a part of my life.

From here on out i intend to have a good time. Laissez le bon temps rouler!
transmission ended 1:37am.

Friday, June 19, 2009

This Weekend!

This saturday i'll be performing at the Arts and Ideas Festival in New Haven , in a piece by Pedro Alejandro!!! the performance is at 3:30pm between cantor church and trinity church on Elm Street in New Haven, Ct! From the looks of it this festival should be excellent, so check it out if you're in town!
www.artidea.org

Thursday, March 5, 2009

Inter-media notation

Recently i've been investigating the idea of using notations from other media as musical performative scores. I'm interested in drawing out the process involved in "performing" a score like a knitting pattern, or a recipe, which is usually hidden from the "audience" (the wearer of the garment, or the diner) and focusing not on the finished result, but on the steps and sequences that are contained in the end product. Like in music, often too much focus is applied to the end result, without regard for the intent and process involved in the manufacture and production of a piece. In music this is exemplified by the maniacal devotion to consuming recorded media that pervades the internet age. People are happy to say that they know a performer's work having only listened to recordings, and never having seen the music performed live. Walter Benjamin, in his essay "art in the age of mechanical reproduction" addresses this point, observing that a recording is not a faithful reproduction of an musical work. though recording serves as an excellent record of
a musical event, the very technology employed to create the recording filters and alters the experience of the work that the listener has; even the sound system that the recording is played back on can drastically alter the experience. The actual music, performed in a studio most often, is gone for ever at the moment the piece is over. in many cases, the piece is never actually played all at once (thank you pop music.)

So, what i aim to do, is to create a series of works which draws out the process of a an alternate media in a sonic form, and in performing these scores, to inspire the audience to reflect on the art of everyday life, and the mundane. more on the progression in time!

Saturday, December 27, 2008

Try this?

/*
a few important things: files must be uncompressed aiff or wav files. they can be mono or stereo, however because of some funkyness in SC's buffer allocation only one chanel of the stereo file is used at this time. fix comming later....

you'll need to be using the latest build of SC. you can grab that here:

http://supercollider.sourceforge.net/
you'll also need to install the conductor quark. see Quarks help file for more on this (highlight quarks and press command+d.)


please select all of this window text and run it with the localhost server on. in the window called samples click the load samples button and select as many files as you wish. the server will probably go offline for a while as the samples are loaded into buffers, but when it has gone from "inactive" to "running" you are good to go. then select from the "select buffer" window which file you would like to granulate. choose an envelope type, then click the granular resynthesis button on the bottom window. you should hear something, but if not, bring the volume (DB) slider up until you do.


the files in the select buffer window are hot swapable while playing, and the position in the file will be transfered as well. however i do not reccomend loading new samples while resynthesising.


enjoy, and please direct any questions to Sixtycycles@gmail.com

best,
Rod


*/






//now in stereo sounds!
var load,samples,sbs,bufnmb,bufnmbarry;

//buffer chooser/filenames
samples = SCWindow.new("Select Buffer",Rect(800, 460, 200, 60)).front;
f = SCPopUpMenu(samples,Rect(10,10,180,20));
f.background_(Color.red);

//load dialog
w = SCWindow.new("Samples",Rect(900, 375, 200, 60),false).front;

load = SCButton(w, Rect(20, 10, 150, 20));
load.states = [["Load Samples", Color.red, Color.black]];
load.action = {
CocoaDialog.getPaths({|paths|
a = paths.collect {|dir| SoundFile.openRead(dir);};
b = a.collect { | sf |
Buffer.alloc(Server.default, sf.numFrames, sf.numChannels,
{| buf | buf.readMsg(sf.path)});
};
//get file size in secconds:
n = b.collect {|buffr| buffr.numFrames/buffr.sampleRate;};

paths.do{|i| i.postln; "".postln};
("Number of Buffers Allocated = "++(b.size.value;)).postln;

f.items = j = paths.collect {|i|
i.basename;
};
});

f.action = {|f|

bufnmbarry = Array.fill((j.size),{|i| i.value; });
bufnmb = bufnmbarry[f.value];
Pdef(\a).set(\bufnum, b.at(f.value));
("Now Playing Buffer containing "++j[bufnmb].value;)
};
};

//construct envelope chooser:
z = SCWindow.new("Envelope_Type",Rect(700,375,200,60),false).front;

l = ["sine","triangle","welch","linen","perc"];

sbs = SCPopUpMenu(z,Rect(10,10,180,20));
sbs.items = l;
sbs.background_(Color.white);
sbs.action = {|sbs|
l.at(sbs.value).postln;
Pdef(\a).set(\instrument,l.at(sbs.value));
};

c = Conductor.make { |con, grainSize, spread, overlap, timeStretch, rate, loop, db|

var out;
out = 0;

grainSize .sp(0.005,0.0015,1,0,'exp');
spread .sp(0,0,1,0);
rate .sp(1,0.25,10);
overlap .sp(3,1,10);
timeStretch .sp(1,0.25,50,0,'exp');
loop .sp(0,0,1,1);
db .sp(-32,-90,-12,0,'exp');



//four synths for the envelope types:
SynthDef("sine", {
|out, bufnum = 0, rate = 1, startPos = 0, sustain = 1, loop = 1, amp = 1,lag = 1, pan = 0.0 |
var audio, env;

rate = rate * BufRateScale.kr(bufnum);
startPos = startPos * BufFrames.kr(bufnum);
audio = BufRd.ar(1, bufnum,
Phasor.ar(0, rate, Lag.kr(startPos,lag), BufFrames.ir(bufnum)), loop, 4);
env = EnvGen.ar(Env.sine, 1, timeScale: sustain,levelScale:amp, doneAction: 2);

OffsetOut.ar(out,Pan2.ar(audio*env,pan));
}).store;
SynthDef("triangle", {
|out, bufnum = 0, rate = 1, startPos = 0, sustain = 1,loop = 1, amp = 1 ,lag = 1,pan = 0.0|
var audio, env;

rate = rate * BufRateScale.kr(bufnum);
startPos = startPos * BufFrames.kr(bufnum);
audio = BufRd.ar(1, bufnum,
Phasor.ar(0, rate, Lag.kr(startPos,lag), BufFrames.ir(bufnum)), loop, 4);
env = EnvGen.ar(Env.triangle, 1, timeScale: sustain,levelScale:amp, doneAction: 2);

OffsetOut.ar(out, Pan2.ar(audio*env,pan));
}).store;
SynthDef("welch", {
|out, bufnum = 0, rate = 1, startPos = 0, sustain = 1,loop = 1, amp = 1 ,lag = 1, pan = 0.0|
var audio, env;

rate = rate * BufRateScale.kr(bufnum);
startPos = startPos * BufFrames.kr(bufnum);
audio = BufRd.ar(1, bufnum,
Phasor.ar(0, rate, Lag.kr(startPos,lag), BufFrames.ir(bufnum)), loop, 4);
env = EnvGen.ar(Env.linen(0.4,0.1,0.5,1,'welch'), 1, timeScale: sustain, levelScale:amp,doneAction: 2);

OffsetOut.ar(out, Pan2.ar(audio*env,pan));
}).store;
SynthDef("linen", {
|out, bufnum = 0, rate = 1, startPos = 0, sustain = 1, loop = 1, amp = 1 ,lag = 1,pan = 0.0|
var audio, env;

rate = rate * BufRateScale.kr(bufnum);
startPos = startPos * BufFrames.kr(bufnum);
audio = BufRd.ar(1, bufnum,
Phasor.ar(0, rate, Lag.kr(startPos,lag), BufFrames.ir(bufnum)), loop, 4);
env = EnvGen.ar(Env.linen, 1, timeScale: sustain,levelScale:amp, doneAction: 2);

OffsetOut.ar(out, Pan2.ar(audio*env,pan));
}).store;
SynthDef("perc", {
|out, bufnum = 0, rate = 1, startPos = 0, sustain = 1, loop = 1, amp = 1 ,lag = 1,pan = 0.0|
var audio, env;

rate = rate * BufRateScale.kr(bufnum);
startPos = startPos * BufFrames.kr(bufnum);
audio = BufRd.ar(2, bufnum,
Phasor.ar(0, rate, Lag.kr(startPos,lag), BufFrames.ir(bufnum)), loop, 4);
env = EnvGen.ar(Env.perc, 1, timeScale: sustain, levelScale:amp, doneAction: 2);

OffsetOut.ar(out, Pan2.ar(audio*env,pan));
}).store;


Pdef(\a).set(\instrument,"sine").set(\out,0).set(\bufnum,0);

con.pattern_(Pdef(\a,Pbind(*[
dur: Pfunc({var grn,sprd;
grn = grainSize.value;
sprd =spread.value.rand2;
(grn+(sprd*grn)).value; }
),
legato: overlap,
rate: rate,
startPos: Pn(
Pseg((0.0001,0.0002..1.0),
Pfunc({
y = bufnmb.value;
t = (n[y]*timeStretch)/10000;
t.value;
}),
'lin')
),
loop: loop,
db: db,

out: out
]));
);

con.name_("Granular Re-Synthesis");
};

c.show("granular re-synthesis by 60hz",300,10,200,345);