Monday, November 10, 2008
CC3 Major Project - Record-Madness!
My project is a performance patch that incorporates the user recording an input into the patch and then playing back the sample and processing the patch through SuperCollider. The processes that SuperCollider performs on the patch are:
1) BBCut
2) Tempo
3) Filter
4) Reverb
This results in the playback cutting up the sample and creating stutter effects. Along with this is the ability to speed up or slow down the sample playback. There is also a slider to control a reverb effect and a filter effect. The filter is a bandpass filter. Below is a screenshot of the patch and the elements to download.
CODE
DOCUMENTATION
AUDIO [4.6MB] (low quality)
AUDIO [12.8MB] (high quality)
Sunday, November 09, 2008
Week 12 Forum - Final Form....ever
I didn't come to this forum because I had to finish a presentation for another subject. But, I know what it was about and it was the typical form. Babbling and blather and blah blah blah blah blah....etc
From speaking to other students I know some of the forum touched on what students thought of the degree. If this degree taught me anything it is this:
If you want to study something that will give you the piece of paper that people will think highly of but will be completely useless in the actual work force, go to university.
If you want to study something that will give you the piece of paper that people don't regard highly but will actually teach you useful skills relevant to the work force, go to any vocational training institution.
Unless you want to be a doctor, engineer, lawer or businessman, university is pretty much useless. It just tries to make you an intellect.
[1] Stephen Whittington, "Music Technology Forum: Semester 2 - Week 12 – Babble". Lecture presented at the Electronic Music Unit, University of Adelaide, South Australia, 6th November 2008
Week 11 Forum - Electroacoustic Music
Today we watched some movies that had some music written by some famous composers. I was particularly interested when Stephen mentioned that John Chowning made millions off something. I should've paid more attention to what he was saying. My ears pricked up when I heard "musician" and "millionaire". You don't hear those two words in one sentence music here at all.
[1] Stephen Whittington, "Music Technology Forum: Semester 2 - Week 11 – Electroacoustic Music". Lecture presented at the Electronic Music Unit, University of Adelaide, South Australia, 23rd October 2008
Wednesday, November 05, 2008
Week 10 Forum - Honors Presentation
Today we had two presentations. They were from Poppi Doser and Martin Victory.
Poppi presented a movie with an animation student she has been working with for a few years. Poppi's work always seems to be of very high quality. I think the way she interprets media is quite good. The music suited to visuals quite well.
Martin presented us with a complicated SuperCollider patch that interpreted network traffic into music. This is defiantly an original idea but I don't see it being commercial viable unless the patch can differentiate between certain data. What would be really cool if it was possible to generate certain music based on what material was being searched. I don't think this is possible but it's worth a shot. I think Martin's original idea is still pretty impressive and I'm curious to see how he explores this topic further.
[1] Poppi Doser & Martin Victory, "Music Technology Forum: Semester 2 - Week 10 – Honors Presentation". Lecture presented at the Electronic Music Unit, University of Adelaide, South Australia, 16th October 2008
Sunday, November 02, 2008
AA3 Week 10 - Project So Far
This is my progress so far. We were meant to have a rough cut by week 10 but clearly I don't have that. I have employed my sounds so far with some music but there is still some work left to go.
[1] Luke Harrald. "Audio Arts: Semester 2 - Week 10 - Rough Cut". Lecture presented at EMU, University of Adelaide, South Australia, 14th October 2008
Week 9 Forum - 3rd Year Presentations
[1]
Today we had presentation by the third years. I was impressed by how many students decided to use surround sound in their works. I haven't used surround in my work but not because it doesn't interest me. I just haven't found a use for it yet. I do want to learn how to mix in surround properly for future work. I thought Ben's piano piece was nice and Jake's piece sounded great with the surround sounds pulsating through the room. Dave's piece was also quite good.
[1] 100Cute, Technology, Celebrity & Fashion Blog. http://www.100cute.com/design-your-own-surround-sound-spherical-speakers-for-the-real-bang.html (Accessed 10/10/8)
[2] Stephen Whittington & 3rd Year Students, "Music Technology Forum: Semester 2 - Week 9 – Student Presentations". Lecture presented at the Electronic Music Unit, University of Adelaide, South Australia, 9th October 2008
CC3 Week 9 - Spatialisation
AUDIO [1.7MB]
(
var sbs;
~gFreqMenu = 0;
~gFreq = 80;
~gAmp = 0.05;
~gDur = 1.0;
~gWait = 0.01;
~gPanX = 1;
~gPanY = 1;
SynthDef("FSinOsc", {
// Args
arg gFreq = 440, gAmp = 1.0, gDur = 3.0, xpan= 1, ypan=1;
// 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: Pan4.ar(out,xpan, ypan)
)
}).send(s);
SynthDef("SinOsc", {
// Args
arg gFreq = 440, gAmp = 1.0, gDur = 3.0, xpan= 1, ypan=1;
// 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: Pan4.ar(out,xpan, ypan)
)
}).send(s);
SynthDef("LFTri", {
// Args
arg gFreq = 440, gAmp = 1.0, gDur = 3.0, xpan= 1, ypan=1;
// 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: Pan4.ar(out,xpan, ypan) )
}).send(s);
SynthDef("Pulse", {
// Args
arg gFreq = 440, gAmp = 1.0, gDur = 3.0, xpan= 1, ypan=1;
// 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: Pan4.ar(out,xpan, ypan) )
}).send(s);
SynthDef("Saw", {
// Args
arg gFreq = 440, gAmp = 1.0, gDur = 3.0, xpan= 1, ypan=1;
// 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: Pan4.ar(out,xpan, ypan)
)
}).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;
};
// 4 CHANNEL PANNER
v = SC2DSlider(w, Rect(300, 1, 45, 45))
.x_(0.5) // initial location of x
.y_(1) // initial location of y
.action_({|sl|
~gPanX = (sl.x*2)-1;
~gPanY = (sl.y*2)-1;
});
// 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 = SCSlider(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;
// slider=0;
//r.value=""++(slider.hi*2000) ++"Hz";
r.value=""++(slider.value*2000) ++"Hz";
// ~gFreq = slider.hi*2000;
~gFreq = slider.value*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 = SCSlider(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=0;
t.value=""++(slider.value*1) ++"";
~gAmp = slider.value*0.1;
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 = SCSlider(e, Rect(30, 225, 300, 15))
// .lo_(0.001)
// .hi_(1)
// .range_(1)
.knobColor_(HiliteGradient(Color.blue, Color.white, Color.blue))
.action_({ |slider|
// slider=0;
u.value=""++(slider.value*1) ++"s";
~gDur = slider.value*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 = SCSlider(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.value*1) ++"s";
~gWait = 0.01/slider.value*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({ s.sync;
inf.do({
~gFreqMenu.switch(0,{Synth("FSinOsc", [\gFreq, ~gFreq, \gAmp, ~gAmp, \gDur, ~gDur, \xpan, ~gPanX, \ypan, ~gPanY])},
1,{Synth("SinOsc", [\gFreq, ~gFreq, \gAmp, ~gAmp, \gDur, ~gDur, \xpan, ~gPanX, \ypan, ~gPanY])},
2,{Synth("LFTri", [\gFreq, ~gFreq, \gAmp, ~gAmp, \gDur, ~gDur, \xpan, ~gPanX, \ypan, ~gPanY])},
3,{Synth("Pulse", [\gFreq, ~gFreq, \gAmp, ~gAmp, \gDur, ~gDur, \xpan, ~gPanX, \ypan, ~gPanY])},
4,{Synth("Saw", [\gFreq, ~gFreq, \gAmp, ~gAmp, \gDur, ~gDur, \xpan, ~gPanX, \ypan, ~gPanY])}
);
// 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 9 - Spatialisation". Lecture presented at the Electronic Music Unit, University of Adelaide, South Australia, 23th October 2008
Saturday, November 01, 2008
Week 8 Forum - My Favourite Things III
Today we watched a David Lynch film called Eraserhead. I found this movie to be weird and boring. It is not something I'd bother watching again. Maybe I just didn't get it, but either way I found it uninteresting.
[1] David Harris, "Music Technology Forum: Semester 2 - Week 8 – My Favorite Things III". Lecture presented at the Electronic Music Unit, University of Adelaide, South Australia, 18th September 2008
CC3 Week 8 - FFT II
I extended my patch further from the previous FFT week. I have used the same panner but the X-Y coordinates control different parameters. The X coordinate controls the string sample and the Y coordinate controls the saw wave synth def. By moving the panner in different directions the freeze point of each sound changes. If the panner is on the bottom left corner, both sounds play as normal. If it is on the top right corner, both sounds freeze. If it is on the top left corner the string sounds continues to play and the saw wave freezes and if it is on the bottom right the string sound freezes and the saw wave continues to play.
I have an audio example of me messing around with the panner. Click here to have a listen. [1.7MB]
s.boot;
(
b = Buffer.alloc(s,1024);
c = Buffer.read(s,"sounds/100- strings.wav");
// string sample [3.6MB]
SynthDef("help-freeze", { arg out=0, bufnum=0, x=0;
var in, chain;
in = Saw.ar(LFNoise1.kr(5.2,250,400), 0.25);
chain = FFT(bufnum, in);
chain = PV_Freeze(chain, x > 0.5);
Out.ar(out, 0.5 * IFFT(chain).dup);
}).send(s);
SynthDef("help-magFreeze2", { arg out=0, bufnum=0, soundBufnum=2, y=0;
var in, chain;
in = PlayBuf.ar(1, soundBufnum, BufRateScale.kr(soundBufnum), loop: 1);
chain = FFT(bufnum, in);
chain = PV_Freeze(chain, y > 0.5 );
Out.ar(out, 0.5 * IFFT(chain).dup);
}).send(s);
)
(
t = Synth("help-freeze",[\out, 0, \bufnum, b.bufnum]);
u = Synth("help-magFreeze2",[\out, 0, \bufnum, b.bufnum, \soundBufnum, c.bufnum]);
w = SCWindow("Orkester", Rect(100, 500, 400, 400))
.front;
w.view.background_(Color.white);
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));
t.set(\x, p.x);
u.set(\y, p.y);
});
//w.front;
);
[1] Christian Haines. "Creative Computing: Semester 2 - Week 8 - FFT III". Lecture presented at the Electronic Music Unit, University of Adelaide, South Australia, 18th September 2008
Tuesday, September 09, 2008
Week 7 Forum - 2nd / 3rd Year Presentations
This week's forum was on presentations. I presented my SuperCollider piece from last semester. I had the same problem when executing the code as I did when I was doing the assignment. That was the second part of the piece didn't play. It's a strange problem as it depends on the computer. It didn't matter so much as I just played the audio recording. I don't know what people thought of my piece. Personally I think it's a collection of meaningless sounds that equates to nothing. Surprisingly I got a good mark for it!
I was going to play my latest song that has been signed to a record label in Melbourne. I decided not too seeing as though the majority of EMU don't appreciate real music and would rather listen to sine tones.
[1] Stephen Whittington, "Music Technology Forum: Semester 2 - Week 7 – 2nd / 3rd Year Presentations". Lecture presented at the Electronic Music Unit, University of Adelaide, South Australia, 11th September 2008
CC3 Week 7 - GUI III
I have incorporated the IXI GUI code of a fancy spinning circle with a waveform oscillating. The GUI doesn't have any function in the patch I have just used it for visual feedback. The animation goes for as long as the duration of the note. I tried to change some of the parameters in the IXI code to change the way it behaves but for some reason SuperCollider kept crashing. So I have used the default code and have just changed the dimensions and colour.
Incase you forgot, you trigger the notes by clicking on the background and control the frequency and duration of the notes using the sliders. The drop down menu changes the timbre of the notes.
//PINK NOISE
(
// Delayed Noise Generator - Envelope > Noise Generator > Delay
SynthDef("plucked-pink", {
// Arguments
arg midiPitch = 80, duration = 10;
// Variables
var burstEnv, noise, delay, att = 0, dec = 0.001, out,
delayTime = midiPitch.midicps.reciprocal, trigRate = 1;
// Envelope
burstEnv = EnvGen.kr(
envelope: Env.perc(att, dec)
);
// Noise Generator
noise = PinkNoise.ar(
mul: burstEnv
);
// Delay
delay = CombL.ar(
in: noise,
maxdelaytime: delayTime,
delaytime: delayTime,
decaytime: duration,
add: noise
);
// Output
Out.ar(
bus: 0,
channelsArray: delay.dup
);
}).send(s);
//WHITE NOISE
// Delayed Noise Generator - Envelope > Noise Generator > Delay
SynthDef("plucked-white", {
// Arguments
arg midiPitch = 80, duration = 10;
// Variables
var burstEnv, noise, delay, att = 0, dec = 0.001, out,
delayTime = midiPitch.midicps.reciprocal, trigRate = 1;
// Envelope
burstEnv = EnvGen.kr(
envelope: Env.perc(att, dec)
);
// Noise Generator
noise = WhiteNoise.ar(
mul: burstEnv
);
// Delay
delay = CombL.ar(
in: noise,
maxdelaytime: delayTime,
delaytime: delayTime,
decaytime: duration,
add: noise
);
// Output
Out.ar(
bus: 0,
channelsArray: delay.dup
);
}).send(s);
//BROWN NOISE
// Delayed Noise Generator - Envelope > Noise Generator > Delay
SynthDef("plucked-brown", {
// Arguments
arg midiPitch = 80, duration = 10;
// Variables
var burstEnv, noise, delay, att = 0, dec = 0.001, out,
delayTime = midiPitch.midicps.reciprocal, trigRate = 1;
// Envelope
burstEnv = EnvGen.kr(
envelope: Env.perc(att, dec)
);
// Noise Generator
noise = BrownNoise.ar(
mul: burstEnv
);
// Delay
delay = CombL.ar(
in: noise,
maxdelaytime: delayTime,
delaytime: delayTime,
decaytime: duration,
add: noise
);
// Output
Out.ar(
bus: 0,
channelsArray: delay.dup
);
}).send(s);
//CLIP NOISE
// Delayed Noise Generator - Envelope > Noise Generator > Delay
SynthDef("plucked-clip", {
// Arguments
arg midiPitch = 80, duration = 10;
// Variables
var burstEnv, noise, delay, att = 0, dec = 0.001, out,
delayTime = midiPitch.midicps.reciprocal, trigRate = 1;
// Envelope
burstEnv = EnvGen.kr(
envelope: Env.perc(att, dec)
);
// Noise Generator
noise = ClipNoise.ar(
mul: burstEnv
);
// Delay
delay = CombL.ar(
in: noise,
maxdelaytime: delayTime,
delaytime: delayTime,
decaytime: duration,
add: noise
);
// Output
Out.ar(
bus: 0,
channelsArray: delay.dup
);
}).send(s);
//GREY NOISE
// Delayed Noise Generator - Envelope > Noise Generator > Delay
SynthDef("plucked-grey", {
// Arguments
arg midiPitch = 80, duration = 10;
// Variables
var burstEnv, noise, delay, att = 0, dec = 0.001, out,
delayTime = midiPitch.midicps.reciprocal, trigRate = 1;
// Envelope
burstEnv = EnvGen.kr(
envelope: Env.perc(att, dec)
);
// Noise Generator
noise = GrayNoise.ar(
mul: burstEnv
);
// Delay
delay = CombL.ar(
in: noise,
maxdelaytime: delayTime,
delaytime: delayTime,
decaytime: duration,
add: noise
);
// Output
Out.ar(
bus: 0,
channelsArray: delay.dup
);
}).send(s);
// w.close;
// WHOLE WINDOW
w = SCWindow.new.front;
w.bounds = Rect(170,150,450,280);
w.name_("Strings II");
w.alpha_(0.8);
p = ParaSpace.new(w, bounds: Rect(10,50,430,210));
p.setShape_("circle");
36.do({arg i;
p.createNode(3+(i*10), 130)
});
35.do({arg i;
p.createConnection(i, i+1);
});
p.setBackgrDrawFunc_({
10.do{
Color.blue(rrand(0.0, 1), rrand(0.0, 0.5)).set;
Pen.addWedge(200@150, rrand(10, 100), 2pi.rand, 2pi.rand);
Pen.perform([\stroke, \fill].choose);
}
});
t = Task({
inf.do({arg i;
36.do({arg j;
(3+((j%36)*10));
p.setNodeLoc_(j, 3+((j%36)*10), ((i*j/100).sin*120)+130);
});
0.01.wait;
})
}, AppClock);
//// PANEL
//e = SCCompositeView(w,Rect(10,50,430,210));
//e.background = Color.new255(100,0,50);
////Gradient(Color.blue,Color.black);
// TRIGGER BUTTON
f = SCButton(w, Rect(10,50,430,210))
.states_([
[" ", Color.white, Color.new255(10,0,100,0.1)]
])
.font_(Font("Arial", 10))
.action_({r.reset;
r.play;
~noisetype.switch(0,{Synth("plucked-pink", [\midiPitch, ~pitch, \duration, ~dur])},
1,{Synth("plucked-white", [\midiPitch, ~pitch, \duration, ~dur])},
2,{Synth("plucked-brown", [\midiPitch, ~pitch, \duration, ~dur])},
3,{Synth("plucked-clip", [\midiPitch, ~pitch, \duration, ~dur])},
4,{Synth("plucked-grey", [\midiPitch, ~pitch, \duration, ~dur])});
});
// DROP DOWN MENU
l = [
"Twang","Harsh","Warm","Tin","Nylon"];
m = SCPopUpMenu(w,Rect(10,10,150,20));
m.items = l;
m.background_(Color.new255(10,0,100));
m.stringColor_(Color.white);
m.action = { arg m;
~noisetype = m.value.postln};
//c.value=""++(slider.hi) ++"Hz";
//PITCH
c = SCTextField(w, Rect(350, 100, 50, 20));
a = SCSlider(w, Rect(40, 100, 300, 20))
.focusColor_(Color.red(alpha:0.2))
.action_({
c.value_(""++((a.value*70)+30).midicps.round(0.1)++"Hz");
~pitch = ((a.value*70)+30)
});
//DURATION
d = SCTextField(w, Rect(350, 200, 50, 20));
b = SCSlider(w, Rect(40, 200, 300, 20))
.focusColor_(Color.red(alpha:0.2))
.action_({
d.value_(""++((b.value*10)+0.1).round(0.1)++"s");
~dur = ((b.value*10)+0.1)
});
r = Routine({
t.resume;
~dur.wait;
t.pause;});
a.valueAction = 0.5;
b.valueAction = 0.5;)
[1] Christian Haines. "Creative Computing: Semester 2 - Week 7 -GUI III". Lecture presented at the Electronic Music Unit, University of Adelaide, South Australia, 11th September 2008
AA3 Week 7 - Randy Thom
I appreciated Randy Thoms approach to sound design. It is important to plan the sound and music with the actual visual aspects of the film and not just leave it till the end. In my experience (which isn’t a lot) of working with visual media I have always been presented with the finished movie and asked to write music for it. I had no control over the planning an production of the work. Unfortunately this is always due the either budget or attitude of the producers.
I had a look at the movies that Randy Thom did the sound design for. I have only seem a small number of his many films:
Final Fantasy: The Spirits Within
What Lies Beneath
Snow Falling on Cedars
Jumanji
Miracle on 34th Street
Forrest Gump
[1]
All these films posses very good sound design. I particually enjoyed the film What Lies Beneath. This was actually one of the films that interested me in film sound to begin with.
[3]
[1] imdb, 'Randy Thom'. www.imdb.com/name/nm0858378/ (Accessed 11/9/8)
[2] Luke Harrald. "Audio Arts: Semester 2 - Week 7 - Randy Thom". Lecture presented at EMU, University of Adelaide, South Australia, 9th September 2008
[3] Skywalker Sound, 'Randy Thom'. www.skysound.com (Accessed 11/9/8)
Saturday, September 06, 2008
Week 6 Forum - Practical Composition Workshop IB
[2]
This week we finished our task from a couple weeks ago of making sounds that represent particular emotions. I have my sounds listed below for you to listen to. I have deliberately not showed what each sound is so you can have a proper guess. The answers are here.
I think some are more obvious than others. It was hard to distinguish sounds that represent similar emotions (e.g. happiness and love).
Sound 1
Sound 2
Sound 3
Sound 4
Sound 5
Sound 6
Sound 7
Sound 8
Sound 9
[1] Stephen Whittington, "Music Technology Forum: Semester 2 - Week 6 – Practical Composition Workshop II". Lecture presented at the Electronic Music Unit, University of Adelaide, South Australia, 4th September 2008
[2] TechDoctor Company. "A Cure For Your Tech Headaces". www.techdoctorcompany.com/homeoffice (Accessed 9/9/8)
Friday, September 05, 2008
CC3 Week 6 - Physical Modelling I
I have created a Karplus-Strong String Synthesis patch with some parameters on the GUI to control the sound. I have a drop down menu to select the timbre of the sound. This is actually changing the type of noise that is being triggered. I also have a frequency slider that obviously selects the frequency of the string. Finally I have a duration slider to select how long the notes are.
To trigger the notes simply click anywhere in the window. I have a button that covers the background so you can just click and hear the notes.
Click here for an audio example of my patch. [1.7MB]
//PINK NOISE
(
// Delayed Noise Generator - Envelope > Noise Generator > Delay
SynthDef("plucked-pink", {
// Arguments
arg midiPitch = 80, duration = 10;
// Variables
var burstEnv, noise, delay, att = 0, dec = 0.001, out,
delayTime = midiPitch.midicps.reciprocal, trigRate = 1;
// Envelope
burstEnv = EnvGen.kr(
envelope: Env.perc(att, dec)
);
// Noise Generator
noise = PinkNoise.ar(
mul: burstEnv
);
// Delay
delay = CombL.ar(
in: noise,
maxdelaytime: delayTime,
delaytime: delayTime,
decaytime: duration,
add: noise
);
// Output
Out.ar(
bus: 0,
channelsArray: delay.dup
);
}).send(s);
//WHITE NOISE
// Delayed Noise Generator - Envelope > Noise Generator > Delay
SynthDef("plucked-white", {
// Arguments
arg midiPitch = 80, duration = 10;
// Variables
var burstEnv, noise, delay, att = 0, dec = 0.001, out,
delayTime = midiPitch.midicps.reciprocal, trigRate = 1;
// Envelope
burstEnv = EnvGen.kr(
envelope: Env.perc(att, dec)
);
// Noise Generator
noise = WhiteNoise.ar(
mul: burstEnv
);
// Delay
delay = CombL.ar(
in: noise,
maxdelaytime: delayTime,
delaytime: delayTime,
decaytime: duration,
add: noise
);
// Output
Out.ar(
bus: 0,
channelsArray: delay.dup
);
}).send(s);
//BROWN NOISE
// Delayed Noise Generator - Envelope > Noise Generator > Delay
SynthDef("plucked-brown", {
// Arguments
arg midiPitch = 80, duration = 10;
// Variables
var burstEnv, noise, delay, att = 0, dec = 0.001, out,
delayTime = midiPitch.midicps.reciprocal, trigRate = 1;
// Envelope
burstEnv = EnvGen.kr(
envelope: Env.perc(att, dec)
);
// Noise Generator
noise = BrownNoise.ar(
mul: burstEnv
);
// Delay
delay = CombL.ar(
in: noise,
maxdelaytime: delayTime,
delaytime: delayTime,
decaytime: duration,
add: noise
);
// Output
Out.ar(
bus: 0,
channelsArray: delay.dup
);
}).send(s);
//CLIP NOISE
// Delayed Noise Generator - Envelope > Noise Generator > Delay
SynthDef("plucked-clip", {
// Arguments
arg midiPitch = 80, duration = 10;
// Variables
var burstEnv, noise, delay, att = 0, dec = 0.001, out,
delayTime = midiPitch.midicps.reciprocal, trigRate = 1;
// Envelope
burstEnv = EnvGen.kr(
envelope: Env.perc(att, dec)
);
// Noise Generator
noise = ClipNoise.ar(
mul: burstEnv
);
// Delay
delay = CombL.ar(
in: noise,
maxdelaytime: delayTime,
delaytime: delayTime,
decaytime: duration,
add: noise
);
// Output
Out.ar(
bus: 0,
channelsArray: delay.dup
);
}).send(s);
//GREY NOISE
// Delayed Noise Generator - Envelope > Noise Generator > Delay
SynthDef("plucked-grey", {
// Arguments
arg midiPitch = 80, duration = 10;
// Variables
var burstEnv, noise, delay, att = 0, dec = 0.001, out,
delayTime = midiPitch.midicps.reciprocal, trigRate = 1;
// Envelope
burstEnv = EnvGen.kr(
envelope: Env.perc(att, dec)
);
// Noise Generator
noise = GrayNoise.ar(
mul: burstEnv
);
// Delay
delay = CombL.ar(
in: noise,
maxdelaytime: delayTime,
delaytime: delayTime,
decaytime: duration,
add: noise
);
// Output
Out.ar(
bus: 0,
channelsArray: delay.dup
);
}).send(s);
w.close;
// WHOLE WINDOW
w = SCWindow.new.front;
w.bounds = Rect(170,150,450,280);
w.name_("Strings");
w.alpha_(0.8);
// PANEL
e = SCCompositeView(w,Rect(10,50,430,210));
e.background = Color.new255(100,0,50);
//Gradient(Color.blue,Color.black);
// TRIGGER BUTTON
f = SCButton(w, Rect(10,50,430,210))
.states_([
[" ", Color.white, Color.new255(10,0,100)]
])
.font_(Font("Arial", 10))
.action_({
~noisetype.switch(0,{Synth("plucked-pink", [\midiPitch, ~pitch, \duration, ~dur])},
1,{Synth("plucked-white", [\midiPitch, ~pitch, \duration, ~dur])},
2,{Synth("plucked-brown", [\midiPitch, ~pitch, \duration, ~dur])},
3,{Synth("plucked-clip", [\midiPitch, ~pitch, \duration, ~dur])},
4,{Synth("plucked-grey", [\midiPitch, ~pitch, \duration, ~dur])});
});
// DROP DOWN MENU
l = [
"Twang","Harsh","Warm","Tin","Nylon"];
m = SCPopUpMenu(w,Rect(10,10,150,20));
m.items = l;
m.background_(Color.new255(10,0,100));
m.stringColor_(Color.white);
m.action = { arg m;
~noisetype = m.value.postln};
//c.value=""++(slider.hi) ++"Hz";
//PITCH
c = SCTextField(w, Rect(350, 100, 50, 20));
a = SCSlider(w, Rect(40, 100, 300, 20))
.focusColor_(Color.red(alpha:0.2))
.action_({
c.value_(""++((a.value*70)+30).midicps.round(0.1)++"Hz");
~pitch = ((a.value*70)+30)
});
//DURATION
d = SCTextField(w, Rect(350, 200, 50, 20));
b = SCSlider(w, Rect(40, 200, 300, 20))
.focusColor_(Color.red(alpha:0.2))
.action_({
d.value_(""++((b.value*10)+0.1).round(0.1)++"s");
~dur = ((b.value*10)+0.1)
});
)
[1] Christian Haines. "Creative Computing: Semester 2 - Week 6 - Physical Modelling I". Lecture presented at the Electronic Music Unit, University of Adelaide, South Australia, 4th September 2008
Watch out for the Shaq Attack!
I thought today’s presentations went well. It was good to see where everyone else is. Unfortunately I didn't have any sounds to show because I am still in the organization stage of my project. I'm not going to record anything until I know every single sound I need for the film. Also, it's not due for a long time so I still have plenty of time.
I don't know the students name, but the music played by the composition student was very good. I also liked the music from Ben and also Jake.
Great sound design from John, Dave and Luke. It was interesting to see how everyone is taking a slightly different approach to this project and I look forward to seeing all the final results.
[1] Luke Harrald. "Audio Arts: Semester 2 - Week 6 - Presentations - Nosferatu". Lecture presented at EMU, University of Adelaide, South Australia, 2nd September 2008
Sunday, August 31, 2008
Week 5 Forum - My Favourite Things II
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
