Thursday, August 14, 2008

Week 3 Forum - First Year Student Presentations

[2]

I want to bury every musique concrete piece ever written......in concrete.....only then can I save people from being inflicted with this nonsensical blather some people consider music. . .


This week's forum was pretty unorganized considering we had a lot of presentations to go through. The presentations were a combination of boring musique concrete pieces, a funny animation, some good mixing skills and some impressive video game music.

I don't know the name of the student, but I was very impressed with the musique concrete piece we were listening to when we were bombarded with the other classical students. Normally I find musique concrete uninspiring, but this piece was very interesting. It's a shame we didn't get to hear it properly.

I thought the animation by Josh was excellent. The music and sound effects were incorporated in the visuals flawlessly.

Alex's mixing of Behind These Walls was excellent too. It's a pity the speakers weren't set up in stereo but from what I heard it sounded great.

The video game music was mint. When he said an Adelaide based company I wonder if he meant Sillhouette Studios? I did some work for them in January this year for an internet flash game.

I don't know the names of most of the first year students, so it makes it harder to write about their presentations. These four presentations were the stand out ones for me.


[1] Lisa Lane-Collins, Josh Thompson, Steven Tanoto, Scott Herriman, Josh Bevan, Alex Bishop, Jacob Simionato, Jamie Seyfang, Scott Kavanagh, Miles Sly, "Music Technology Forum: Semester 2 - Week 3 – First Year Student Presentations". Lecture presented at the Electronic Music Unit, Schulz 1006 & EMU Space, University of Adelaide, South Australia, 14th August 2008

[2] You Say Cement, I Say Concrete, 'Charles & Hudson'. http://www.charlesandhudson.com/archives/2008/05/you_say_cement_i_say_concrete.htm (Accessed 17/8/8)

CC3 Week 3 - Granular Synthesis

I ended up choosing the most simple example patch to work with for my granular synthesis patch. This is because I already made a buffer last semester and wanted to change. One really annoying part of this weeks exercise was how I've used the SCRangeSlider. I really should stop using this slider as it isn't designed for what I'm doing. I just prefer how it looks but it makes the process much harder. When testing my patch you need to hold down OPTION when dragging the sliders.

For this patch I have created global variables to control the parameters of the granular synthesiser and also used separate synthdefs for each waveform I have made available. There is a lot of repeated code but at this stage I don't know any other way to code this patch with the same outcome.

The colours are okay. They could be better, but with so much messing around I eventually just wanted to get this done.







(


var sbs;

~gFreqMenu = 0;
~gFreq = 80;
~gAmp = 0.05;
~gDur = 1.0;
~gWait = 0.01;

SynthDef("FSinOsc", {

// Args
arg gFreq = 440, gAmp = 1.0, gDur = 3.0;

// Vars
var osc, env, envGen, out;

// Unit Generators
osc = FSinOsc.ar(freq: gFreq);
env = Env.sine(
dur: gDur,
level: 1
);
envGen = EnvGen.ar(
envelope: env,
gate: 1,
levelScale: gAmp,
doneAction: 2
);
out = envGen * osc;

// Output
Out.ar(
bus: 0,
channelsArray: out.dup
)
}).send(s);


SynthDef("SinOsc", {

// Args
arg gFreq = 440, gAmp = 1.0, gDur = 3.0;

// Vars
var osc, env, envGen, out;

// Unit Generators
osc = SinOsc.ar(freq: gFreq);
env = Env.sine(
dur: gDur,
level: 1
);
envGen = EnvGen.ar(
envelope: env,
gate: 1,
levelScale: gAmp,
doneAction: 2
);
out = envGen * osc;

// Output
Out.ar(
bus: 0,
channelsArray: out.dup
)
}).send(s);




SynthDef("LFTri", {

// Args
arg gFreq = 440, gAmp = 1.0, gDur = 3.0;

// Vars
var osc, env, envGen, out;

// Unit Generators
osc = LFTri.ar(freq: gFreq);
env = Env.sine(
dur: gDur,
level: 1
);
envGen = EnvGen.ar(
envelope: env,
gate: 1,
levelScale: gAmp,
doneAction: 2
);
out = envGen * osc;

// Output
Out.ar(
bus: 0,
channelsArray: out.dup
)
}).send(s);





SynthDef("Pulse", {

// Args
arg gFreq = 440, gAmp = 1.0, gDur = 3.0;

// Vars
var osc, env, envGen, out;

// Unit Generators
osc = Pulse.ar(freq: gFreq);
env = Env.sine(
dur: gDur,
level: 1
);
envGen = EnvGen.ar(
envelope: env,
gate: 1,
levelScale: gAmp,
doneAction: 2
);
out = envGen * osc;

// Output
Out.ar(
bus: 0,
channelsArray: out.dup
)
}).send(s);



SynthDef("Saw", {

// Args
arg gFreq = 440, gAmp = 1.0, gDur = 3.0;

// Vars
var osc, env, envGen, out;

// Unit Generators
osc = Saw.ar(freq: gFreq);
env = Env.sine(
dur: gDur,
level: 1
);
envGen = EnvGen.ar(
envelope: env,
gate: 1,
levelScale: gAmp,
doneAction: 2
);
out = envGen * osc;

// Output
Out.ar(
bus: 0,
channelsArray: out.dup
)
}).send(s);

//w.close;


// WHOLE WINDOW
w = SCWindow.new.front;
// Parameters
w.bounds = Rect(170,150,450,380); // Rectangular Window Bounds (Bottom Left Width Height)
w.name_("Grainulator"); // Window Name
w.alpha_(0.8); // Transparency
// w.boxColor_(Color.black);


// PANEL
e = SCCompositeView(w,Rect(10,50,430,310));
e.background = Color.new255(100,0,50);
//Gradient(Color.blue,Color.black);


// DROP DOWN MENU (WAVEFORM)
l = [
"Fast Sine Wave","Sine Wave","Triangle Wave","Square Wave","Saw Tooth Wave"];
sbs = SCPopUpMenu(w,Rect(10,10,150,20));
sbs.items = l;
sbs.background_(Color.new255(100,0,50));
sbs.stringColor_(Color.white);

sbs.action = { arg sbs;
~gFreqMenu = sbs.value.postln;

};

// TEXT (FREQ)
r = SCStaticText(e, Rect(350, 80, 100, 20));
r.stringColor_(Color.white);
r.string = "Frequency";
r.font_(Font("Arial", 12));



// SLIDER (FREQ)
r = SCRangeSlider(e, Rect(30, 85, 300, 15))
.lo_(0.001)
.hi_(1)
.range_(1)
.knobColor_(HiliteGradient(Color.blue, Color.white, Color.red))
.action_({ |slider|
slider.lo=0;
r.value=""++(slider.hi*2000) ++"Hz";
~gFreq = slider.hi*2000;
r.stringColor_(Color.white);

[\sliderLOW, slider.lo, \sliderHI, slider.hi].postln;
});


// NUMBER BOX (FREQ)
r = SCTextField(
parent: e,
bounds: Rect(350, 110, 50, 15) // Left Top Width Height
).boxColor_(Color.new255(100,0,50));


// TEXT (AMP)
t = SCStaticText(e, Rect(350, 150, 100, 20));
t.stringColor_(Color.white);
t.string = "Amplitude";
t.font_(Font("Arial", 12));


// SLIDER (AMP)
t = SCRangeSlider(e, Rect(30, 85+70, 300, 15))
.lo_(0.0001)
.hi_(1)
.range_(1)
.knobColor_(HiliteGradient(Color.blue, Color.white, Color.red))
.action_({ |slider|
slider.lo=0;
t.value=""++(slider.hi*10) ++"";
~gAmp = slider.hi*10;
t.stringColor_(Color.white);

[\sliderLOW, slider.lo, \sliderHI, slider.hi].postln;
});


// NUMBER BOX (AMP)
t = SCTextField(
parent: e,
bounds: Rect(350, 180, 50, 15) // Left Top Width Height
).boxColor_(Color.new255(100,0,50));


// TEXT (DUR)
u = SCStaticText(e, Rect(350, 220, 150, 20));
u.stringColor_(Color.white);
u.string = "Duration";
u.font_(Font("Arial", 12));


// SLIDER (DUR)
u = SCRangeSlider(e, Rect(30, 225, 300, 15))
.lo_(0.001)
.hi_(1)
.range_(1)
.knobColor_(HiliteGradient(Color.blue, Color.white, Color.blue))
.action_({ |slider|
slider.lo=0;
u.value=""++(slider.hi*1) ++"s";
~gDur = slider.hi*1;
u.stringColor_(Color.white);

[\sliderLOW, slider.lo, \sliderHI, slider.hi].postln;
});


// NUMBER BOX (DUR)
u = SCTextField(
parent: e,
bounds: Rect(350, 250, 50, 15) // Left Top Width Height
).boxColor_(Color.new255(100,0,50));



// TEXT (WAIT)
p = SCStaticText(e, Rect(350, 290, 150, 20));
p.stringColor_(Color.white);
p.string = "Iteration Time";
p.font_(Font("Arial", 12));


// SLIDER (WAIT)
p = SCRangeSlider(e, Rect(30, 295, 300, 15))
.lo_(0.001)
.hi_(1)
.range_(1)
.knobColor_(HiliteGradient(Color.blue, Color.white, Color.red))
.action_({ |slider|
slider.lo=0;
p.value=""++(0.01/slider.hi*1) ++"s";
~gWait = 0.01/slider.hi*1;
p.stringColor_(Color.white);

[\sliderLOW, slider.lo, \sliderHI, slider.hi].postln;
});



// NUMBER BOX (WAIT)
p = SCTextField(
parent: e,
bounds: Rect(350, 320, 50, 15) // Left Top Width Height
).boxColor_(Color.new255(100,0,50));


)

(
Routine({
inf.do({

~gFreqMenu.switch(0,{Synth("FSinOsc", [\gFreq, ~gFreq, \gAmp, ~gAmp, \gDur, ~gDur])},
1,{Synth("SinOsc", [\gFreq, ~gFreq, \gAmp, ~gAmp, \gDur, ~gDur])},
2,{Synth("LFTri", [\gFreq, ~gFreq, \gAmp, ~gAmp, \gDur, ~gDur])},
3,{Synth("Pulse", [\gFreq, ~gFreq, \gAmp, ~gAmp, \gDur, ~gDur])},
4,{Synth("Saw", [\gFreq, ~gFreq, \gAmp, ~gAmp, \gDur, ~gDur])}
);
// Create Grain
// Synth("Pulse", [\gFreq, {rrand(80, 300).postln}, \gAmp, 0.05, \gDur, 1.0]);
// [1000, 8000] [200, 400]
// Grain Delta - 0.1, 0.01
~gWait.wait;
})
}).play;

)




[1] Christian Haines. "Creative Computing: Semester 2 - Week 3 - Granular Synthesis". Lecture presented at the Electronic Music Unit, University of Adelaide, South Australia, 14th August 2008

AA3 Week 3 - Foley I

For this week's exercise I have started on the sound of a window opening. I recorded myself in Studio 1 on the chair. I set up a microphone underneath the chair and rocked it back and forth to create a creaking sound. I then added some reverb to give the sound some space. I have added too much reverb at this stage but I didn't spend a lot of time on this sound. It was really just to demonstrate where my ideas are heading.



Click here to hear my sound so far.



These are the rest of the foley elements in the third clip that I will be working with:

- outdoor ambience
- running footsteps (individual & many)
- rocks landing on ground
- laughing
- people screaming
-rocks bouncing off the roof
- vampire shuffling and climbing off roof
- smoke off the roof

- wife knitting
- wife deep breath

- footsteps on grass
- shuffling through bush
- vampire jumping

- wife sleeping
- wife suddenly awakes scared
- man sleeping
- wife clasping window seal
- wife opens window

- big wooden doors opens

- wife stumbles
- wife pleads for help
- man helps wife on bed


[1] Luke Harrald. "Audio Arts: Semester 2 - Week 3 -Foley Analysis I - Nosferatu". Lecture presented at EMU, University of Adelaide, South Australia, 12th August 2008