Eclectic I

Monday, March 31, 2008

CC3A wk4

Synthesis and Envelopes



I'm pretty disappointed with what I came up with this week. It is a failed attempt at granular synthesis. I thought that the Dust object would work differently than it it. I didn't realise that because the the pulses in amplitude were random you cannot reconstruct the waveform with a higher density, but loose shape to the waveform altogether.

CC3A wk4 rtf




(
{


f = 440;

[ SinOsc.ar( // object to create sine wave
f*1, // multplies the frequency (f) relative to harmonic series
phase: 0, // phase is 0
mul: Dust.ar(MouseX.kr(100, 1000000), 1), /* Dust creates a granulation of the amplitude. The granulation size is controlled by the mouse. Range from 1000 - 10 000.
Final number relates to amplitude.
*/
add: 0), // I can't figure out what this does

SinOsc.ar( // object to create sine wave
f*2, // multplies the frequency (f) relative to harmonic series
phase: 0, // phase is 0
mul: Dust.ar(MouseX.kr(100, 1000000), 1/2), /* Dust creates a granulation of the amplitude. The granulation size is controlled by the mouse. Range from 1000 - 10 000.
Final number relates to amplitude.
*/
add: 0), // I can't figure out what this does

SinOsc.ar( // object to create sine wave
f*3, // multplies the frequency (f) relative to harmonic series
phase: 0, // phase is 0
mul: Dust.ar(MouseX.kr(100, 1000000), 1/3), /* Dust creates a granulation of the amplitude. The granulation size is controlled by the mouse. Range from 1000 - 10 000.
Final number relates to amplitude.
*/
add: 0), // I can't figure out what this does

SinOsc.ar( // object to create sine wave
f*4, // multplies the frequency (f) relative to harmonic series
phase: 0, // phase is 0
mul: Dust.ar(MouseX.kr(100, 1000000), 1/4), /* Dust creates a granulation of the amplitude. The granulation size is controlled by the mouse. Range from 1000 - 10 000.
Final number relates to amplitude.
*/
add: 0), // I can't figure out what this does

SinOsc.ar( // object to create sine wave
f*5, // multplies the frequency (f) relative to harmonic series
phase: 0, // phase is 0
mul: Dust.ar(MouseX.kr(100, 1000000), 1/5), /* Dust creates a granulation of the amplitude. The granulation size is controlled by the mouse. Range from 1000 - 10 000.
Final number relates to amplitude.
*/
add: 0), // I can't figure out what this does

SinOsc.ar( // object to create sine wave
f*6, // multplies the frequency (f) relative to harmonic series
phase: 0, // phase is 0
mul: Dust.ar(MouseX.kr(100, 1000000), 1/6), /* Dust creates a granulation of the amplitude. The granulation size is controlled by the mouse. Range from 1000 - 10 000.
Final number relates to amplitude.
*/
add: 0), // I can't figure out what this does

SinOsc.ar( // object to create sine wave
f*7, // multplies the frequency (f) relative to harmonic series
phase: 0, // phase is 0
mul: Dust.ar(MouseX.kr(100, 1000000), 1/7), /* Dust creates a granulation of the amplitude. The granulation size is controlled by the mouse. Range from 1000 - 10 000.
Final number relates to amplitude.
*/
add: 0), // I can't figure out what this does

SinOsc.ar( // object to create sine wave
f*8, // multplies the frequency (f) relative to harmonic series
phase: 0, // phase is 0
mul: Dust.ar(MouseX.kr(100, 1000000), 1/8), /* Dust creates a granulation of the amplitude. The granulation size is controlled by the mouse. Range from 1000 - 10 000.
Final number relates to amplitude.
*/
add: 0), // I can't figure out what this does

SinOsc.ar( // object to create sine wave
f*9, // multplies the frequency (f) relative to harmonic series
phase: 0, // phase is 0
mul: Dust.ar(MouseX.kr(100, 1000000), 1/9), /* Dust creates a granulation of the amplitude. The granulation size is controlled by the mouse. Range from 1000 - 10 000.
Final number relates to amplitude.
*/
add: 0), // I can't figure out what this does

SinOsc.ar( // object to create sine wave
f*10, // multplies the frequency (f) relative to harmonic series
phase: 0, // phase is 0
mul: Dust.ar(MouseX.kr(100, 1000000), 1/10), /* Dust creates a granulation of the amplitude. The granulation size is controlled by the mouse. Range from 1000 - 10 000.
Final number relates to amplitude.
*/
add: 0), // I can't figure out what this does

SinOsc.ar( // object to create sine wave
f*11, // multplies the frequency (f) relative to harmonic series
phase: 0, // phase is 0
mul: Dust.ar(MouseX.kr(100, 1000000), 1/11), /* Dust creates a granulation of the amplitude. The granulation size is controlled by the mouse. Range from 1000 - 10 000.
Final number relates to amplitude.
*/
add: 0), // I can't figure out what this does

SinOsc.ar( // object to create sine wave
f*12, // multplies the frequency (f) relative to harmonic series
phase: 0, // phase is 0
mul: Dust.ar(MouseX.kr(100, 1000000), 1/12), /* Dust creates a granulation of the amplitude. The granulation size is controlled by the mouse. Range from 1000 - 10 000.
Final number relates to amplitude.
*/
add: 0), // I can't figure out what this does
]
}.scope(12);

)



Reference:

Haines, Christian. "Creative Computing - Week 4 - Sound Generation." Lecture presented at Tutorial Room 408, Level 4, Schultz Building, University of Adelaide, 27th of March 2008.

Friday, March 28, 2008

Tech Forum 3A wk4

Student Presentations 2


I had better photo's but my phone was being stupid.

Ben Probert

Ben's Granular synthesis program was a great example of the fun that can be had creating your own program in Max/Msp. It was entertaining to listen to him play with his creation and see what interesting sounds he could come up with.

Luke Digance

I am unsure what people thought of my presentation. Hopefully people got something out of it.

Matt Mazzone

Matt openly admitted that he aiming for commercial success and so will "give the public what they want." I think there is market for artists who desire originality and don't cater for the generic public. I would rather not make money from my music, and create something I was happy with, then make money creating music I hated. I think Matt is talented, but the type of music he has chosen to create doesn't inspire me.

Freddy May and Douglas Loudon

I enjoyed both approaches to their use of plogue and Live. Although Doug's piece had more 'accessible' elements to it, I liked the sounds and direction Freddy was going in more. He may not of thought that a band was something he was interested in, but I think more musical elements would have filled the piece out and given it more.

Reference:

Whittington, Stephen. “Forum – Week 4 – Student Presentations Pt 2”. Workshop presented at EMU Space, Level 5, Schultz Building, University of Adelaide, 27th of March 2008.

Tuesday, March 25, 2008

CC3A wk 3

Triggering MIDI via OSC

I enjoyed working as a group on this project. We each seemed to contribute to a certain aspect of the exercise, although to me it is apparent that Jake and Dave have a much better grasp of the language than I. Although what they did made sense to me, I don't think I could have discovered how to go about doing it as quickly as they did.



Rather then look at the code sprawled across the screen, feel free to download them as a compact zip file. :)

All of the rtf files







/*
COMPUTER 1.
(1a) Takes MIDI note data and converts it to frequency
*/

//MIDI initialise
MIDIClient.init;

//connect to Remote SL (novation)
MIDIIn.connectByUID(
inport: 0,
uid: MIDIClient.sources.at(0).uid
);


//so notes will come up on the post whatsit
(

MIDIIn.noteOn = {

arg uid,
chan,
num,
vel
;

//["UID", uid, "Channel", chan, "Note", num, "Velocity", vel].postln;
x = num.midicps.postln; //post the freq (x) to yourself

{ //send x to the network (n)

n.sendMsg(
"treeTits",
x.postln;
);

}.value

};

)

/*
COMPUTER 1.
(1b) Sends the frequency (variable x) via OSC to computer 2
*/


//initialise Network

(

n = NetAddr(
hostname: "129.127.196.19",
port: 57120
);

)


Computer 2


(
// Open Sound Control Responder
r = OSCresponder
(
addr: nil, // Nil respond to messages from anywhere
cmdName: "treeTits", // An OSC command (same name as messge sent)
action: { // Action to perform

// Arguments - default
arg time, // OSC time
resp, // Responder name
msg, // Message
addr // Address
;

// Feedback
// [time, resp, msg, addr].postln;
x = {msg.at(1).cpsmidi}.value.postln;

{
// Send a message to that computer - in this case the converted MIDI value
n.sendMsg(
"treeTits", // Command Name (Same as OSCResponder Command Name)
//MIDIIn.noteOn // Argument Value
x.postln
);
}.value.postln;

{
// Send MIDI Note Value
m.noteOn(
chan: 1, // MIDI Channel
note: x, // Note Number
veloc: 90 // Velocity
);
m.noteOff(
chan: 1, // MIDI Channel
note: x, // Note Number
veloc: 90 // Velocity
);
}.value

}
).add; // Add method - adds OSC responder to server
)
// Open Sound Controller Sender

// Connect by Device Index Address
MIDIIn.connectByUID(
inport: 0,
uid: MIDIClient.sources.at(4).uid
);


(
// Setup MIDIIn Controller
MIDIIn.noteOn =
{

// Arguments
arg uid, // Device ID
chan, // MIDI Channel
num, // Note Number
vel // Velocity
;

// Feedback
//["UID", uid, "Channel", chan, "Note", num, "Velocity", vel].postln;

~noteToFreq = num.midicps.postln;

{
// Send a message to that computer
n.sendMsg(
"treeTits", // Command Name (Same as OSCResponder Command Name)
//MIDIIn.noteOn // Argument Value
~noteToFreq.postln
);
}.value


};
)


Computer 3 - playing the simple synth - MIDI out

(
// Setup MIDIOut
m = MIDIOut(
port: 0,
uid: MIDIClient.destinations.at(8).uid
);
)

(
// Open Sound Control Responder
r = OSCresponder
(
addr: nil, // Nil respond to messages from anywhere
cmdName: "treeTits", // An OSC command (same name as messge sent)
action: { // Action to perform

// Arguments - default
arg time, // OSC time
resp, // Responder name
msg, // Message
addr // Address
;

// Feedback
// [time, resp, msg, addr].postln;
x = {msg.at(1)}.value.postln;

{
// Send MIDI Note Value
m.noteOn(
chan: 1, // MIDI Channel
note: x, // Note Number
veloc: 90 // Velocity
);
m.noteOff(
chan: 1, // MIDI Channel
note: x, // Note Number
veloc: 90 // Velocity
);
}.value

}
).add; // Add method - adds OSC responder to server
)




Monday, March 24, 2008

Forum 3A wk 3

Jake Morris

Jake gave an overview of his piece "Cathode Ray Tube Suite" I really like this piece. my only criticism is that I would have like the second movement to have gone for longer.

Khaled Senad

Senad's use of rhythmic triggers in his piece was brilliant. I particularly liked the use found sounds. The other element I really liked was the use of an open source piece of software to trigger these sounds. It reminds me of what we did as an assignment in second year with the program "Live" but with open source software that is much better (in my opinion.)

John Delany and David Dowling

Both Dave and John demonstrated what Max/Msp is capable of. However I think that perhaps the first years who are more orientated to music of a more accessible nature may have been a little daunted by the focus Dave had on his programing capabilities. Although I think it had a great aesthetic, I can understand how it would be hard for people grasp. John's talk on his pieces contrasted this. With the focus clearly being on aesthetic, and not diverging much of his programming prowess. Both pieces were quite enjoyable.

Reference:

Whittington, Stephen. “Presentations, Round One”. Forum presented at EMU Space, Level 5, Schultz Building, University of Adelaide, 20th of March 2008.

Tuesday, March 18, 2008

AA3A wk3

Thinking outside the box



To get myself thinking outside the square in terms of recording, I decided to record an instrument I was unfamiliar with. I managed to get my hands on my friends baby harp. I was very pleased with what we came up with.

After deciding that the harp sounded best with a large space behind it and half the curtains shut, we then experimented with where to place mic's. The harp produced sound from a resonant chamber at the back, which had two holes. After listening to the sound from the holes, we found that the bottom hole produced the most bass and the top the treble. We then decided on a couple of u89's (the sound did not have enough bass to warrant a larger diaphragm) at the optimum position (chasing the flame) from each hole and set them to cardioid. We were then able to pan these left and right and get a great stereo spread.

u89 stereo spread

From here we just added mics to experiment with capturing different attributes of the instrument.

First a U87 set to omni as a room mic. This added a bit more presence to the sound, but is a bit airy in the mix. Perhaps should of tried moving the harp to have something behind it.

U89 stereo spread plus U87 room

Next an NT5 on the strings to get more plucking sounds. Although it adds realism, its not what the audience would hear and so I don't like it.

U89 stereo spread plus NT5 strings

Finally we tried putting a mic inside the bottom hole to get the sound of the resonant space. It sounds very full and I like it. But I'm not sure I would actually use it.

U89 stereo spread plus NT5 hole

Monday, March 17, 2008

CC3A wk 2

It is proving to be quite the challenge getting my head around this language, but I think I'm slowly getting there. I can scour the examples in the help files till I find the appropriate sections of code which relate to the questions set for us, but I don't wholly understand it on a low level bases. To combat this I am trying to do each question in a series of basic steps, so I know exactly how each bit works. It's helping, but I'm still worried that as things get more complex I am going to get left behind. I guess its a matter of wait and see.

I was having trouble getting the code to format (it kept putting it all on the one line) so heres a link to the rtf file.


CCAwk2 rtf file

Thursday, March 13, 2008

Music Tech Forum3A wk2

To blog, or not to blog?




Does blogging serve as an adequate means of academic evaluation? Ethic, etiquette and cultural impact were three major areas of blogging raised by Stephen Whittington. Although he did not directly say this, I assume he was trying to apply that from adhering to these guidelines, that blog's can maintain academic credibility.

When discussing what Ethic, etiquette and cultural impact implied in terms of blogging, I felt that the obvious was being stated. However I think if you are going to use blogging as a means of academic assessment it is import to have guidelines which are clear and precise, even to the point of being self evident and obvious.

Finally I found it interesting when I brought up the usefulness of observing your peers weekly exercises to help you with your own work. The immediate assumption that this was cheating was quite unjust in my opinion. Quite often you can look at what somebody else has done and learn from it, but still put in the effort yourself and do it a completely different way, but it was from seeing how someone else has gone about it that helped you reach that point.

References

Stephen Whittington. "Music Technology Forum - Blogs, Assessment & Student Discussion." Lecture presented at the Electronic Music Unit, University of Adelaide, South Australia, 13/03/2008.

Pic Reference
Annon. "Knowing Your Audience is Key for Real Estate Bloggers" October 9, 2007 4:24 pm. (15/3/08).
http://base10blog.wordpress.com/2007/10/09/knowing-your-audience-is-key-for-real-estate-bloggers/

Wednesday, March 12, 2008

AA3 wk2

Surround Micing techniques.



The main technique presented to us was the decatree (pictured above.) We set this up with the neuman as the centre mic. We positioned the mics so that the piano was evenly spread across the front left, centre and front right mic.

decaTree

I was much happier with the result when we tried my idea of spreading the mics out to match the positions a surround speaker set up and turned the mics inwards. It really gives a feel for someone moving around within a space. I think it would be cool to use this set up for a sound installation. Feed the mic signals to 5 corrosponding speakers in a seperate room, so people can hear people moving around that they can't see.

superSpacing

Tuesday, March 11, 2008

Tech Forum 3 semester 1 wk1

Music Tech Forum - Week 1 - Synergy Project



The Synergy project was a group of artists discussing collaboration. Some focussed on the idea of collaboration in more detail, whilst most discussed various works they have collaborated on and how the have grown and developed as artists from these collaborations.

In terms of music, only one of the speakers really stood out. Ross Benicia. His program Audio Mulch was a very ingenuitive approach to the ever pressing difficulties of having improvisatory collaborations with 'traditional' instruments.

The reac-table is of course a brilliant extension of this idea. Creating a tactile interface which offers a hands on approach to creating electronic music in the same vague vain as learning a 'traditional' instrument. The fact that he collaborated with others to contribute to the production of the latest incarnations of the reac-table was very fitting.

Reference:

Bencina, Ross. "The Synergy Project." Forum presented at University of SA – City West Campus, Sir Hans Heysen Building, Level 3, Lecture Theatre HH308, Friday 7th of March.

Gardiner, Matthew. "The Synergy Project." Forum presented at University of SA – City West Campus, Sir Hans Heysen Building, Level 3, Lecture Theatre HH308, Friday 7th of March.

Polson, Deb. "The Synergy Project." Forum presented at University of SA – City West Campus, Sir Hans Heysen Building, Level 3, Lecture Theatre HH308, Friday 7th of March.

Plumley, Fee. "The Synergy Project." Forum presented at University of SA – City West Campus, Sir Hans Heysen Building, Level 3, Lecture Theatre HH308, Friday 7th of March.

Rackham, Melinda. "The Synergy Project." Forum presented at University of SA – City West Campus, Sir Hans Heysen Building, Level 3, Lecture Theatre HH308, Friday 7th of March.

Wilde, Danielle. "The Synergy Project." Forum presented at University of SA – City West Campus, Sir Hans Heysen Building, Level 3, Lecture Theatre HH308, Friday 7th of March.

Monday, March 10, 2008

AA3 wk 1

Stereo mic'ing



My general approach to panning is to get as much of an isolated instrument as possible and then pan it within a stereo image. Yet there are times when using stereo mic'ing can be the best approach.


Mid Side Technique - U87s one set to Omni, the other set to Figure 8:

The Mid Side approach is always brilliant on a piano. It just gives it such a full rich sound

Mid Side

XY Configuration - U87's - Set to Cardiod:

The Nueman XY didn't work so well. I think it was partially because they weren't placed correctly, as the levels differ slightly. I also thing you are better of doing Mid side to get the same feel, or use the Rode NT5's.

Neuman XY

XY-NT4 Stereo Mic:

The Rode NT5's worked fairly well in the XY. I think I rather use them as a spaced pair though.

Rode NT XY

Close Stereo Pair - U87's - Set to Cardiod:

The spaced pair worked quite well.

Spaced Pair

U87's front and back - Set to Cardiod:

Stereo front and back worked better that I expected. I think it isolated the difference between the low and the high strings well. Although possible lost a bit of the mid range.

stereo front back


Reference:

Grice, David. "Audio Arts, Week 1 - Multi Micing Techniques". Lecture presented at EMU space, Level 5, Schultz building, University of Adelaide, 4th March, 2008.

CC3 semester 1 wk1

This weeks Super Collider excercise was a bit of a push to get through. Mainly because I had Womad all weekend and had little time to get it done. But I got it in the end. The readings weren't as strait forward as they could be but I think I deciphered it in the end. I had to look onto John Deleny's blog to discover how to post multiple times.




CC3A wk1 rtf file


// CC3 week 1 SC

(
"hmm".postln;
)

// Now it is time for some Maths

(

a = 2;
b = 2;
(a + b).postln;
)
(
// Words and Numbers Global ( tilda ~)
~time = 100;
~code = "Dead Ants";
(~time + ~code).postln;
)
(
// Words and Numbers Local
var whoSays, youCantHaveItAll;
whoSays = 100;
youCantHaveItAll = "Dead Ants";
(whoSays + youCantHaveItAll).postln;
)
(
// Function 1

f = {
arg a,b;
var frozenInTime = 9;

(a + b - frozenInTime).postln
};

f.value(5, 4);

)
(
// Function 2

f = {
arg a,b;
var whoSays, youCantHaveItAll;
whoSays = 100;
youCantHaveItAll = "Dead Ants";
(a + b - whoSays + youCantHaveItAll).postln
};

f.value (101, 99);

)
(
// Funtion 3
f = {
arg a,b;
var mooMoo, cow;
mooMoo = 9;
cow = 2;
(a * b - mooMoo / cow).postln
};

f.value (4, 7);

)
(
// Function 4
f = {
var luke, is, a, vegetarian, hippy, dude;
luke = "Lets";
is = "go";
a = "on";
vegetarian = "a";
hippy = "killing";
dude = "spree!";
(luke + is + a + vegetarian + hippy + dude).postln
};

f.value
)
(
// Function 5
f = {
arg a, b, c, d, e, f; a - b * c + d / e
};

f.value (1, 2, 3, 4, 5, 6).postln;
)
(
// Function 6
f = {
arg a, b, c, d, e;
a + b + c + d + e
} ;

f.value("Luke", "is", "a vegetarian", "hippy", "dude.");
)
(
/* Function 7 - Printing multiple times.
I have looked at John Delany's blog to figure this one out as I couldn't find out how to do this from the readings.
*/
10.do({ arg item; {"100 Dead Ants".postln; "Frozen in time".postln }.value});
)
(
// Function 8
y = 12;
q = 57;
r = 9;
v = "100 Dead Ants Floating in Time";

(y * q - r + v).postln;

)

(
// Function 9
y = { arg a, b, c, d, r, t; a + b * c - d / r * t; };
y.value(9, 3, 11, 5, 2, 6);
)
(
//Function 10
~thisIs = 5;
~myLast = 5;
~function = "Functions complete";

(~thisIs + ~myLast + ~function).postln
)


[1] Christian Haines. "Creative Computing 3: Semester 1, Week 1. Introduction to SuperCollider." Lecture presented at the Electronic Music Unit, University of Adelaide, South Australia, 6/03/2008.

3rd Year!

It has begun!

That is all :)