Sunday, August 31, 2008

Week 5 Forum - My Favourite Things II



Christianity is stupid. Communism is good.



Christianity is not stupid and communism is not good!

This weeks forum class was a bit controversial. It takes a lot to offend me, so I wasn't offended. But, I defiantly would not want my name on a song like that. Religion and politics are the two topics you shouldn't discuss unless you're willing to have conflict.

Personally I would never want to write music about these two topics because I like to keep my views to myself and not expose them to public. Then again, I do admire artists that tastefully write music about important issues.

I think the band Negativland are ignorant doing what they're doing. I would be ashamed and embarrassed to be famous on their song. It's probably the only way I would reject being successful as a commercial artist. Using sex appeal to sell music is common and not as bad. This is just wrong.



[1] Stephen Whittington, "Music Technology Forum: Semester 2 - Week 5 – My Favourite Things II". Lecture presented at the Electronic Music Unit, Schulz 1009, University of Adelaide, South Australia, 28th August 2008

Friday, August 29, 2008

CC3 Week 5 - FFT I


This week I created a GUI on some code that was generating FFT on white noise. Using the examples we went through in class, I used a slider to control the X-Y co-ordinates instead of the mouse.

I was exploring the GUI examples more thoroughly and found a slider that controlled the window colour. I used the same concept and made the slider change the colour of the slider itself.




Click here for an audio example of my patch. [1.7MB]




b = Buffer.alloc(s,2048,1);

(

SynthDef("help-rectcomb2", { arg out=0, bufnum=0, x=0, y=0;
var in, chain;
in = WhiteNoise.ar(0.2);
chain = FFT(bufnum, in);
chain = PV_RectComb(chain, x, y, 0.2);
Out.ar(out, IFFT(chain).dup);
}).send(s);
x = Synth("help-rectcomb2");


w = SCWindow("Filter", Rect(100, 500, 400, 400))
.front;
w.view.background_(Color.black);
w.alpha = 0.8;


p = SC2DSlider(w, Rect(20, 20,350, 350))
.x_(0.5) // initial location of x
.y_(1) // initial location of y
.action_({p.background = (Color.new(p.x, p.y, 200, 1));
x.set(\x, p.x*32);
x.set(\y, p.y);
// [\sliderX, p.x, \sliderY, p.y].postln;
});
//w.front;

);




[1] Christian Haines. "Creative Computing: Semester 2 - Week 5 - FFT I". Lecture presented at the Electronic Music Unit, University of Adelaide, South Australia, 28th August 2008

Week 4 Forum - Practical Composition Workshop IA

I wrote my entire blog entry for this week and then my computer had a fit and I lost it. I cannot be stuffed writing it up again and since no one reads my blog I'm not going to.


[1] Stephen Whitting & David Harris, "Music Technology Forum: Semester 2 - Week 4 – Practical Composition Workshop". Lecture presented at the Electronic Music Unit, EMU Space, University of Adelaide, South Australia, 21st August 2008

Tuesday, August 26, 2008

CC3 Week 4 - Splice & Dice

I'm not convinced that my patch even works this week which is unfortunate because it looks good! I have used the example code and have my drum parts playing as a break beat with the stuttering. However the stuttering isn't controlling how I want it to. The stutter-chance is meant to be controlled using the sliders.

Below is my code. For an audio example click here [1.7MB].





You will need to place these samples [204KB] on the desktop for my code to work.



(

// Variables
var kick, snare, hats, clock1, clock2, clock3, cutkick, cutsnare, cuthats, cutprockick, cutprocsnare, cutprochats, sbs;

~kickstutterchance = 0.5;
~snarestutterchance = 0.5;
~hatsstutterchance = 0.5;




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


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


// Color.new255(100,250,50);




// TEXT (KICK)
n = SCStaticText(e, Rect(350, 80, 100, 20));
n.stringColor_(Color.white);
n.string = "Kick";
n.font_(Font("CalisMTBol", 13));


// SLIDER (KICK)
r = SCRangeSlider(e, Rect(30, 85, 300, 15))
.lo_(0.001)
.hi_(1)
.range_(1)
.knobColor_(HiliteGradient(Color.red, Color.red, Color.red))
.action_({ |slider|
slider.lo=0;
~kickstutterchance = slider.hi;
// r.stringColor_(Color.white);

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


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

// TEXT (SNARE)
t = SCStaticText(e, Rect(350, 150, 100, 20));
t.stringColor_(Color.white);
t.string = "Clap";
t.font_(Font("CalisMTBol", 13));


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

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

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


// TEXT (HATS)
u = SCStaticText(e, Rect(350, 220, 150, 20));
u.stringColor_(Color.white);
u.string = "Hi-Hats";
u.font_(Font("CalisMTBol", 13));


// SLIDER (HATS)
u = SCRangeSlider(e, Rect(30, 225, 300, 15))
.lo_(0.001)
.hi_(1)
.range_(1)
.knobColor_(HiliteGradient(Color.red, Color.red, Color.red))
.action_({ |slider|
slider.lo=0;
~hatsstutterchance = slider.hi;
// u.stringColor_(Color.white);

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


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






// Setup & Initialise Scheduling Clock
clock1 = ExternalClock(
tempoclock: TempoClock(tempo: 2.7725) // 166.35 BPM
);


// Setup & Initialise Scheduling Clock
clock2 = ExternalClock(
tempoclock: TempoClock(tempo: 2.7725) // 166.35 BPM
);


// Setup & Initialise Scheduling Clock
clock2 = ExternalClock(
tempoclock: TempoClock(tempo: 2.7725) // 166.35 BPM
);

// Start Routine

Routine.run({


// Cut Data -- buffer data and segmentation
kick = BBCutBuffer(
filename: "/Users/student/Desktop/kick.wav",
beatlength: 4 // number of beats in soundfile (estimates source tempo)
);


// Cut Data -- buffer data and segmentation
snare = BBCutBuffer(
filename: "/Users/student/Desktop/snare.wav",
beatlength: 4 // number of beats in soundfile (estimates source tempo)
);



// Cut Data -- buffer data and segmentation
hats = BBCutBuffer(
filename: "/Users/student/Desktop/hats.wav",
beatlength: 2 // number of beats in soundfile (estimates source tempo)
);
s.sync; //this forces a wait for the Buffer to load


// Cutting Synthesiser -- playback for buffer
cutkick = CutBuf2(
bbcutbuf: kick, // buffer to cut up
offset: 0.1, // random cut playback probability
dutycycle: CutPBS1({rrand(0.8,1.0)}, 0) // ratio of inter onset interval (delta!? of cuts)
);

// Cutting Synthesiser -- playback for buffer
cutsnare = CutBuf2(
bbcutbuf: snare, // buffer to cut up
offset: 0.1, // random cut playback probability
dutycycle: CutPBS1({rrand(0.8,1.0)}, 0) // ratio of inter onset interval (delta!? of cuts)
);


// Cutting Synthesiser -- playback for buffer
cuthats = CutBuf2(
bbcutbuf: hats, // buffer to cut up
offset: 0.1, // random cut playback probability
dutycycle: CutPBS1({rrand(0.8,1.0)}, 0) // ratio of inter onset interval (delta!? of cuts)
);


cutprockick = BBCutProc11(
phrasebars: 2, // number of phrase bars
stutterchance: ~kickstutterchance, // phrase tail chance of repetition
stutterspeed: {[4,8].wchoose([0.7,0.3])} // stutterspeed relative to sub division
);

cutprocsnare = BBCutProc11(
phrasebars: 2, // number of phrase bars
stutterchance: ~snarestutterchance, // phrase tail chance of repetition
stutterspeed: {[4,8].wchoose([0.7,0.3])} // stutterspeed relative to sub division
);


cutprochats = BBCutProc11(
phrasebars: 2, // number of phrase bars
stutterchance: ~hatsstutterchance, // phrase tail chance of repetition
stutterspeed: {[4,8].wchoose([0.7,0.3])} // stutterspeed relative to sub division
);


// Cutting Scheduler - cut groups and how they will be cut
z = BBCut2(
cutgroups: cutkick, // array of cut groups
proc: cutprockick // algorithmic routine used to generate the cuts
).play(clock1);

// Cutting Scheduler - cut groups and how they will be cut
y = BBCut2(
cutgroups: cutsnare, // array of cut groups
proc: cutprocsnare // algorithmic routine used to generate the cuts
).play(clock2);

// Cutting Scheduler - cut groups and how they will be cut
x = BBCut2(
cutgroups: cuthats, // array of cut groups
proc: cutprochats // algorithmic routine used to generate the cuts
).play(clock3);

});

clock1.play;
clock2.play;
clock3.play;


)








[1] Christian Haines. "Creative Computing: Semester 2 - Week 4 - Splice & Dice". Lecture presented at the Electronic Music Unit, University of Adelaide, South Australia, 21st August 2008

Monday, August 25, 2008

AA3 Weeks 4 & 5 - Foley II

My progress this week has been organizing how I am going to go about getting all the sounds together for this assignment. I have expanded my plan from last week to include music and sound design elements. There is some overlap between foley and sound design. This is because I think the recorded sounds may need some sound design elements to make the overall sound effects better.



This sounds like something. I just don't know what yet.




THEME ELEMENTS (MUSIC/SOUND)
- slide music
- Nosferatu
- wife

MUSIC
- music 01 – outdoor setting
- music 02 – Nosferatu running, on roof top, escapes
- music 03 – wife indoors knitting
- music 02 – Nosferatu on the run
- music 04 – Nosferatu on window seal
- music 03 - (alternate) wife sleeping + scared
- music 04 - (alternate) wooden door opens
- music 05 - death

SCENE ENVIRONMENTS
- outside stone walls
- Nosferatu running through streets
- Nosferatu climbing off roof (filter off yelling)
- indoors
- Nosferatu running through scrub
- window seal
- outside

FOLEY
- 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


SOUND DESIGN
- slide sound
- dialogue
- evil associated sounds (synth swirl, bass glitches, dissonance)
- indoor pleasing ambience (warm sound)
- outdoor sounds (birds, crickets, trees, wind, scrub)
- running sounds (brushing against bushes)
- signature jump
- beating up fake Nosferatu
- window seal (drone sound)
- peaceful sleeping
- sudden wake up
- breathing
- creaking on window seal
- window open
- big wooden doors open
- death




[1] Luke Harrald. "Audio Arts: Semester 2 - Weeks 4 & 5 - Foley Analysis II - Nosferatu". Lecture presented at EMU, University of Adelaide, South Australia, 19th August 2008

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

Thursday, August 07, 2008

Week 2 Forum - My Favourite Things I

[2]

Raindrops on roses and whiskers on kittens. . . .



Todays class on Music Technology Forum didn't really include "music technology". Well, we did use a CD player. Two hours of this class were spent on listening to music. When listening to David's piece, my first feelings were sympathy for the performers. I've never seen a piece with so many changing time signatures. I would find it near impossible to play, but I guess that's because I'm not a composition student. The varying tones and dynamic range of the piece sounded good but there wasn't any kind of timing structure. I think David was actually going for this idea.

The Schubert piece we listened to was okay. I prefer Beethoven when it comes to classical music. Schubert's music tends to be a lot more repetitive. David mentioned that this piece reminded him of minimal music. I can definately see why. Minimal music can be very effective but I prefer Philip Glass or minimal electronic music.

I don't think this class was very productive. We hardly did anything. The break was good.


[1] David Harris, "Music Technology Forum: Semester 2 - Week 2 – My Favourite Things". Lecture presented at the Electronic Music Unit, Schulz 1109, University of Adelaide, South Australia, 7th August 2008

[2] Redfin, 'A Few of My Favorite Things (Sort Of): 2 Kinds of Gas, BART and Being a Homeowner'. http://sfbay.redfin.com/blog/category/sweet_digs_classic/ (Accessed 7th August 2008)

AA3 Week 2 - Sound FX Analysis - The Matrix Lobby Scene*


One of the best scenes in The Matrix is this lobby scene. I have analysed this scene and listed the sound design, foley and music. There is so so much going on all together and I haven't included the time at which these events occur as it will take too long. The clip is below so you can follow what I have included.


[2]




Sound Design
pile driver
bag slide
machine beep
jacket opening (swoosh!)
reverse woosh
gun spring sound
lift beep
body fall
swoooosh
hand combat SFX
shells being fired
empty shells dropping to the ground

Foley
footsteps
dialogue
strike
gun fire (machine, shot gun, pistol)
gun cock
gun dropping
army footsteps
smashing pillars
smashed pillars rock fragments dropping
shoe sliding on floor
lift door opening/closing
lift "bing" (which for some reason goes off when they are in the lift?)

Music
pile driver
rhythm element
background tone
propellerheads soundtrack


[1] Luke Harrald. "Audio Arts: Semester 2 - Week 2 - Sound FX Analysis - The Matrix Lobby Scene". Lecture presented at EMU, Audiolab, University of Adelaide, South Australia, 5th August 2008

[2] youtube. "Matrix Lobby Scene". www.youtube.com (Accessed 13/8/8)

CC3 Week 2 - Graphical User Interface II

I was lucky this week as one of my synthdefs was very similar to the example we went through. This is a simple AM synth. I have used the array method but I couldn't work out how to change the colours and make it more customizable. In my code I have used the EZSlider which does limit what you can do quite a bit.




Below is my finished code. For an audio example click here [1.8MB].



//Synth Def
(
SynthDef("SinTone", {

arg cFreq = 500, cAmp = 0.5, mFreq = 3, mAmp = 0.75;

var carrier, modulator, out;

modulator = LFSaw.ar(freq: mFreq, mul: mAmp);
carrier = SinOsc.ar(freq: cFreq, mul: modulator * cAmp);

out = Out.ar(bus: 0, channelsArray: carrier);

}).send(s);
)

~asynth = Synth("SinTone");

(

// Variables
var win, sliderData;

// Build Slider Data
sliderData = [
// Label Min Max InitMin Param
["Carrier Freq", [10.0, 5000.0], 200.0, \cFreq],
["Carrier Amp", [0.0, 1.0], 0.1, \cAmp],
["Mod Freq", [0.1, 200.0], 0.1, \mFreq],
["Mod Amp", [0.1, 100.0], 0.1, \mAmp]
];

// Window Setup
win = GUI.window.new(
name: "Granular Control",
bounds: Rect(20, 400, 440, 180)
).front;
win.view.decorator = FlowLayout(win.view.bounds);

// Build Control consisting of Label, Min NumBox, Range Slider, Max NumBox,
sliderData.do({

// Arguments
arg val, idx;

// Variables
var guiEZ, specGUI;

// Build Slider
guiEZ = EZSlider(
win, // window
400 @ 24, // dimensions
val[0], // label
ControlSpec(val[1][0], val[1][1], \lin), // control spec
{|ez| ~asynth.set(val[3], ez.value);}, // action
val[2] // initial Value
);
guiEZ.labelView.stringColor_(Color.red);
guiEZ.sliderView.focusColor_(Color.red);
guiEZ.numberView.stringColor_(Color.red);

});
)



I did have a go at building a GUI using a lot more detail but I couldn't work out how to change the scaling. Here is the code to have a look if you're interested


[1] Christian Haines. "Creative Computing: Semester 2 - Week 2 - Graphical User Interface II". Lecture presented at the Electronic Music Unit, University of Adelaide, South Australia, 7th August 2008

Saturday, August 02, 2008

Week 1 Forum - Listening Culture

I can’t remember who said it, but I do believe that the main reason why people listen to music whilst doing other things is simply because “we can”. Music is so portable now it wouldn’t really make sense to sit down and do nothing but listen to music. For us in the Elder Conservatorium, it is a different way of thinking. We may do it because we are studying music and we can appreciate just music. I don’t believe that the average person would think like that, especially the younger generation.

Music has changed in a number of ways, but the culture of listening to music has changed because music is more portable and also because it is now associated with visual content. Stephen gave us the example of how in the past a family would sit infront of the radio and listen to see what was on. That still happens except now its called television.


[2]


I think this video sums up the culture of portable music to some extent. . .



[1] Stephen Whittington, "Music Technology Forum: Semester 2 - Week 1 – Listening Culture". Lecture presented at the Electronic Music Unit, University of Adelaide, South Australia, 31st July 2008

[2] Google Video, 'SNL iPod'. www.broadcaster.com (Accessed 1st August 2008)

CC3 Week 1 - Graphical User Interface I

My computer died this week which is pretty annoying since I actually did do this weeks SC patch. Hopefully I can get my data back and you'll see my attempt of a reverb plugin in Logic called AVerb.


.........Ok I have my patch. I say it's worth $650. That's what it cost to restore my data from my laptop. Typical Apple. . .

The biggest challenge at first was the positioning. Like Christian said, at first it doesn't make sense. Once I got my first slider working with the text and number box, it was a matter of copying the code and editing the positioning and the value of the slider. I also had to set the slider to start at 0. This was annoying at first because the SCRangeSlider starts where the user clicks, by default.



it's getting there. . .





(
var sbs;
//w.close;


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


// BLUE PANEL
e = SCCompositeView(w,Rect(10,50,330,180));
e.background = Color.new255(0,100,150);
// Gradient(Color.red,Color.white);


// TEXT (PREDELAY)
d = SCStaticText(e, Rect(20, 50, 100, 20));
d.stringColor_(Color.white);
d.string = "Predelay";
d.font_(Font("Arial", 12));


// BYPASS BUTTON
f = SCButton(w, Rect(10,3,50,20))
.states_([
["Bypass", Color.white, Color.grey],
["Bypass", Color.white, Color.red],
])
.font_(Font("Arial", 10))
.action_({ arg butt;
butt.value.postln;
});


// SLIDER (PREDELAY)
a = SCRangeSlider(e, Rect(35, 75, 10, 130))
.lo_(0.0)
.hi_(1)
.range_(0.01)
.knobColor_(HiliteGradient(Color.blue, Color.white, Color.red))
.action_({ |slider|
slider.lo=0;
n.value=""++(slider.hi*200) ++"ms";
n.stringColor_(Color.white);

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


// NUMBER BOX (PREDELAY)
n = SCTextField(
parent: e,
bounds: Rect(20, 210, 45, 15) // Left Top Width Height
).boxColor_(Color.grey);


// SLIDER (MIX)
b = SCRangeSlider(e, Rect(305, 75, 10, 130))
.lo_(0.0)
.hi_(1)
.range_(0.01)
.knobColor_(HiliteGradient(Color.blue, Color.white, Color.red))
.action_({ |slider|
slider.lo=0;
m.value=""++(slider.hi*100) ++"%";


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


// NUMBER BOX (MIX)
m = SCTextField(
parent: e,
bounds: Rect(290, 210, 45, 15) // Left Top Width Height
).boxColor_(Color.grey);


// TEXT (MIX)
g = SCStaticText(e, Rect(300, 50, 100, 20));
g.stringColor_(Color.white);
g.string = "Mix";
g.font_(Font("Arial", 12));


// SLIDER (DENSITY/TIME)
c = SCRangeSlider(e, Rect(120, 200, 120, 10))
.lo_(0)
.range_(0.1)
// .range_(0.01)
.knobColor_(HiliteGradient(Color.blue, Color.white, Color.red))
.action_({ |slider|
slider.lo=0;
o.value=""++(slider.hi*100) ++"%";

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


// NUMBER BOX (DENSITY/TIME)
o = SCTextField(
parent: e,
bounds: Rect(200, 175, 45, 15) // Left Top Width Height
).boxColor_(Color.grey);


// TEXT (DENSITY/TIME)
p = SCStaticText(e, Rect(120, 170, 500, 20));
p.stringColor_(Color.white);
p.string = "Density/Time";
p.font_(Font("Arial", 12));


// TEXT (REFLECTIVITY)
q = SCStaticText(e, Rect(120, 50, 100, 20));
q.stringColor_(Color.white);
q.string = "Reflectivity";
q.font_(Font("Arial", 12));


// SLIDER (REFLECTIVITY)
q = SCRangeSlider(e, Rect(135, 75, 10, 50))
.lo_(0.0)
.hi_(1)
.range_(0.01)
.knobColor_(HiliteGradient(Color.blue, Color.white, Color.red))
.action_({ |slider|
slider.lo=0;
q.value=""++(slider.hi*100) ++"%";
q.stringColor_(Color.white);

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


// NUMBER BOX (REFLECTIVITY)
q = SCTextField(
parent: e,
bounds: Rect(120, 130, 45, 15) // Left Top Width Height
).boxColor_(Color.grey);


// TEXT (ROOM SIZE)
r = SCStaticText(e, Rect(200, 50, 100, 20));
r.stringColor_(Color.white);
r.string = "Room Size";
r.font_(Font("Arial", 12));


// SLIDER (ROOM SIZE)
r = SCRangeSlider(e, Rect(215, 75, 10, 50))
.lo_(0.0)
.hi_(1)
.range_(0.01)
.knobColor_(HiliteGradient(Color.blue, Color.white, Color.red))
.action_({ |slider|
slider.lo=0;
r.value=""++(slider.hi*200) ++"";
r.stringColor_(Color.white);

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


// NUMBER BOX (ROOM SIZE)
r = SCTextField(
parent: e,
bounds: Rect(200, 130, 45, 15) // Left Top Width Height
).boxColor_(Color.grey);


// DROP DOWN MENU (#DEFAULT)
l = [
"#default","-","Next Setting","(Previous Setting","Copy Setting",
"Paste Setting","Reset Setting"
];
sbs = SCPopUpMenu(w,Rect(240,3,100,20));
sbs.items = l;
sbs.background_(Color.grey);
sbs.action = { arg sbs;
};
)



[1] Christian Haines. "Creative Computing: Semester 2 - Week 1 - Graphical User Interface I". Lecture presented at the Electronic Music Unit, University of Adelaide, South Australia, 31st July 2008

AA3 Week 1 - Film Sound & Music Overview

I was pretty disappointed that our film for this semester is some 90 year old film I've never heard of. Still, I guess making sound effects and music will still be fun. I have chosen the first two minutes of the second clip we were provided with. This is because there are a lot more indoor scenes and I think it will be more fun making those indoor eerie sound scapes. This section of the film was pretty freaky and I think for that time it would have been very scary. This film, Nosferatu: A Symphony Of Horror, has some chilling parts and I'm sure with some clever sound design skills I can make it even scarier.

|0.00 - 1.08| - Indoor setting / wood surroundings / possible dialogue / sounds of man flicking through book

|1.08 - 1.52| - clock / door knock / door opening / dracular / door slam / man scared / out door noises

|1.52 - 2.25| - doors opens / man scared hiding / vampire


[2]

BOO!


I've only looked at the overall sounds very briefly. Later this semester I will go into a lot more depth.



[1] Luke Harrald. "Audio Arts: Semester 2 - Week 1 Film Sound & Music Overview". Lecture presented at EMU, Audiolab, University of Adelaide, South Australia, 29th July 2008

[2] Bram Stoker & Henrik Galeen - Nosferatu: A Symphony of Horror. Dir. Murnau F.W. Videocassette. Germany: Film Arts Guild, 1922. 94 min.