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.


It's depressing getting older


Yes today is my birthday



[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]

I wonder what this sounds like....?


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

AA3 Week 6 - Presentations




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