Friday, June 30, 2006

Music: a Mathematical Offering

Just take a look at this book (9meg) and you'll realise why a math class should be an integral part of our tech course.

Friday, June 23, 2006

Creative Computing (Major)

I pose the question:
What's better, SuperCollider, or spending the last 3 hours of your life in a Gas chamber waiting until your lungs turn to water?
Well that's a difficult question. They're both equally as good in my opinion.

I present to you, my SuperCollider,

"Piece of Shit"

The idea for this piece was to create a sequence of audio textures using SynthDef’s for instruments, and Pbind patterns for sequencing. I chose to use rough white-noise-like sound textures because of their soothing nature. – (Soothing, bah, like they could sooth the pain of SuperCollider)

Here is a summary of the sound based Ugen’s for each SynthDef.

Gendy:

- Gendy1.ar

PingPong:

- Blip.ar
- SinOsc.ar
- PingPong.ar

Gray:

- GrayNoise.ar
- Resonz.ar
















This is the best score I could whip up with the crappy graphics program on the G5's. I remember a while ago asking Christian whether the open-source "GIMP" could be installed on the G5's, but I forgot what his response was. I must ask him again at some point.

Enjoy! – (if that is at all possible)

6 ‘ 09


// Tech Major Semester 1 , "Piece of Shit"
(
// Gendy
SynthDef("Gendy",
{
// Arguments
arg ampdist = 1.0,
durdist = 1.0,
adparam = 1.0,
ddparam = 1.0,
minfreq = 20,
maxfreq = 200,
ampscale = 1.0,
durscale = 1.0,
initCPs = 12,
knum = 10,
amp = 1.0,
mul = 0.9,
pan = 0.8,
envdur = 1
;

// Variables
var out,
gendy,
env
;

// Envelope
env = EnvGen.kr(
envelope: Env([0, 0.9, 0.8, 0.7, 0], [2, 3, 2, 4] * envdur,'sine'),
doneAction: 2,
timeScale: 1.0 + 6.0.rand,
levelScale: 0.3
);

// Ugens
gendy = Pan2.ar( // Need to add a filter here
in: Gendy1.ar(
ampdist: ampdist, // 0.0001 to 1
durdist: durdist, // 0.0001 to 1
adparam: adparam, // 0.0001 to 1
ddparam: ddparam, // 0.0001 to 1
minfreq: minfreq,
maxfreq: maxfreq,
ampscale: ampscale, // 0.0 to 1
durscale: durscale, // 0.0 to 1
initCPs: initCPs,
knum: knum,
mul: mul
),
pos: pan,
level: amp
);

gendy = gendy * env;

// Output

out = Out.ar(
bus: 0,
channelsArray: gendy
);
}).store;

// PingPong
SynthDef("PP",
{

// Arguments
arg out = [0,1],
amp, // AMPLITUDE
pan,
freq, // FREQUENCY
har = 4, // NUMBER OF HARMONICS
delaytime = 0.5,
feedback = 0.2
;

// Variables

var left,
right,
pingpong
;

// Left
left = Blip.ar(
freq,
har,
amp
);

left = left * EnvGen.kr(
envelope: Env([0, 0.9, 0.8, 0.7, 0], [0.2, 0.5, 0.5, 0.2],'sine'),
doneAction: 2,
timeScale: 1.0,
levelScale: 0.3
);

// Right
right = SinOsc.ar(
freq: freq * 1.05,
mul: amp
);

right = right * EnvGen.kr(
envelope: Env([0, 0.9, 0.8, 0.7, 0], [0.4, 1, 1, 0.4],'sine'),
doneAction: 2,
timeScale: 1.0,
levelScale: 0.3
);

// PingPong

pingpong = PingPong.ar(
b.bufnum,
[left, right],
delaytime,
feedback,
1
);

// Allocate Buffer // mmm, samples. I would have liked to incorporate some real samples into this
b = Buffer.alloc(
server: s,
numFrames: s.sampleRate*8.0,
numChannels: 2
);

// Output
Out.ar(
bus: out,
channelsArray: pingpong
)
}).store;

// Gray
SynthDef("Gray",
{

// Arguments
arg out = [0,1], // Output
amp,
pan,
freq
;

// Variables
var noise,
rezonator
;

// Noise
noise = GrayNoise.ar(1.0)
;

// Rezonator
rezonator = Pan2.ar(
in: Resonz.ar(noise, freq, 0.5),
pos: pan,
level: 0.3
);

// Envelope
rezonator = rezonator *
EnvGen.kr(
envelope: Env([0, 0.9, 0.8, 0.7, 0], [1.0, 0.2, 0.2, 0.4],'sine'),
doneAction: 2,
timeScale: 1.0 + 6.0.rand,
levelScale: 0.3
)
;

// Output
Out.ar(
bus: out,
channelsArray: rezonator
)
}
).store;
)

// Sequencer (I'm sure there would be a more effective way of doing this)
// Not sure about creating extra instances of an instrument...
(
// 0:00
h = Pbind(
\instrument, "PP",
\freq, Prand([100, 202, 500, 900, 1500], 220),
\dur, Pseq([ Pgeom(0.05, 1.1, 16), Pgeom(0.5, 0.909, 16)], 220),
\pan, Pfunc({rrand(-0.3, 0.8)}),
\har, 1,
\legato, 0.1,
\amp, 0.1
);

// 0:45
c = Pbind(
\instrument, "Gray",
\dur, 6,
\freq, Prand([Pfunc({rrand(200, 2000)}), Pfunc({rrand(5000, 8000)})], 3),
\pan, Pfunc({rrand(-0.8, 0.8)}, 6),
\amp, Pfunc({rrand(0.1, 0.2)}, 6)
);

// 1:30
d = Pbind(
\instrument, "Gendy",
\ampdist, 1.0,
\durdist, 1.0,
\adparam, 1.0,
\ddparam, 1.0,
\minfreq, 30,
\maxfreq, 80,
\ampscale, 0.3,
\durscale, 0.4,
\initCPs, 6,
\knum, 50,
\amp, 0.3,
\mul, 0.1,
\pan, Pfunc({rrand(-0.5, 0.5)}, 20)
);

// 2:20
e = Pbind(
\instrument, "Gendy",
\ampdist, 1.0,
\durdist, 1.0,
\adparam, 1.0,
\ddparam, 1.0,
\minfreq, 100,
\maxfreq, 200,
\ampscale, 0.3,
\durscale, 0.4,
\initCPs, 50,
\knum, 50,
\amp, 0.2,
\mul, 0.1,
\pan, Pfunc({rrand(-0.5, 0.5)}, 10)
);

// 3:20
f = Pbind(
\instrument, "PP",
\freq, Prand([20, 80, 500, 2000], 500),
\dur, Pseq([ Pgeom(0.05, 1.1, 24), Pgeom(0.5, 0.909, 24)], 500),
\pan, Pfunc({rrand(-0.3, 0.8)}),
\har, 4,
\legato, 0.1,
\amp, 0.1
);

// 4:20
g = Pbind(
\instrument, "Gendy",
\ampdist, 1.0,
\durdist, 1.0,
\adparam, 1.0,
\ddparam, 1.0,
\minfreq, Pxrand([800, 950, 850, 750], 1.5),
\maxfreq, Pxrand([1000, 1100, 950, 1150], 1.5),
\ampscale, 1.0,
\durscale, 1.0,
\initCPs, 12,
\knum, 10,
\amp, 0.4,
\mul, 0.1,
\pan, Pfunc({rrand(-0.5, 0.5)}, 3)
);

// 5:00
i = Pbind(
\instrument, "Gendy",
\ampdist, 1.0,
\durdist, 1.0,
\adparam, 1.0,
\ddparam, 1.0,
\minfreq, Pxrand([30, 40, 50, 60], 2),
\maxfreq, Pxrand([70, 80, 90, 120], 2),
\ampscale, 1.0,
\durscale, 1.0,
\initCPs, 12,
\knum, 50,
\amp, 0.4,
\mul, 0.1,
\pan, Pfunc({rrand(-0.5, 0.5)}, 2)
);

// FADE OUT...

// TIMELINE

Ptpar(
list: [00.00, h, // Patterns and place on timeline
45.00, c, // Hmm, how could I more effectively manipulate the
90.00, d, // streams with say (x).mute, instead of just chaning the number of repeats
140.00, e,
200.00, f,
260.00, g,
300.00, i],
repeats: 1 // Number of Repeats
).play;
)

Monday, June 19, 2006

Audio Arts (Minor)

Before I begin, I would first like to thank:

Jodie O'Regan - Voice in "Need A Hit" and "Self Reflective Mirrors"
William Revill - Guitar in "Need A Hit" and "Self Reflective Mirrors"
Matt Mazzone - Recording Assistant in "Need A Hit" and Keyboardist in "Self Reflective Mirrors"
  • "Need A Hit"
Recording:

I had initially organised a band to record, but they ended up pulling out on me. So left with nobody to record, I decided to rework and finish an old Idea I wrote last year. Because I emailed my players their parts at 11pm the night before the recording, it was no surprise my players (including me) weren’t quite ready to play them when it came to recording time. There's a big lesson to be learnt here; give your players their parts well in advance (ie make sure the composition is finished at least a couple of days before the recording) so they can learn their parts properly. When I think about it, it was a kind of inconsiderate of me to have them come in and try and get their parts right for around 4 or 5 hours. My intentions were totally unrealistic, and a practice I don’t intend to repeat.

Anyway we got the acoustic guitar down, and a rough piano part. The following Thursday we all came in again to finish ‘Need A Hit’ off, and this time we were able to get all the parts down in half the time we spent on Tuesday.

Naming:

Why is it called ‘Need A Hit’? I don’t like to spend forever thinking up a name for a piece so I usually just spend a minute or two and considering whatever feeling or thoughts come by listening to it. The piece originated from two small ideas that were scrapped from a composition that contained four different ideas blended into each other. The second half on this piece I thought sounded like something surreal and ‘out-of-it’ and the first part sounded kind of tense. I put these two feelings together and envision a heroin addict running dry and desperatly needing a hit of the first half, and then recieves his hit in the second half entering a surreal state of mind. No, I haven't tried heroin, so this piece is only a speculative representation of what it might be like. You tell me, is it in any way representative?

Microphones and Placement:

Voice
Microphone – U89i (Hyper Cardiod) + Popper Stopper – was overdubbed
Placement – In front of mouth

Acoustic Guitar
Microphone – U89i (probably Cardiod, can’t remember)
Placement – Offset from resonating chamber

Microphone – SM57 – (didn’t end up using because I couldn’t get a reasonable level and didn’t add to the sound of the U89i)
Placement – end of neck near fret board

Electric Guitar
Microphone – U89i (forgot to note polar pattern)
Placement – About a meter away direct facing amp, slightly offset from speaker cone

DI – (didn’t end up using because it sounded too dry and didn’t have the correct character for the piece)

Piano
Microphone – 2x U87 – one Fig 8, one Omni
Placement – M/S Technique. Placed over sound board, 3rd hole from the bass strings.

Production:

Voice
I wish I had recorded a couple of extra takes not only for doubling purposes, but also because although Jodie did a phenomenal job, she was a little of tune in a few areas (nothing to do with her singing ability; this was my fault as she didn’t have long enough to learn the piece). Speaking of tuning, it would be very nice if the uni could get an ‘auto-tune’ plug-in for Pro Tools.

Piano
I applied a stereo delay on the piano for first half to make it sound boomerangy. I EQed the piano in the second half to make it sound muffed and distant.

Guitars
The original plan was to double the electric and acoustic guitar tracks, but I soon realised I only had enough takes to double the acoustic. Instead I decided to pan the acoustic tracks hard left and right, and then slot the electric track in centre panned. I wanted a predominantly acoustic sound, so I subdued the electric guitar in volume as to provide the icing on the acoustic. I did however add a delay on the electric to make it stand out a little.

Voice
Upon starting the production of this piece, it soon became apparent how challenging it is to mix a classical vocalist. More to the point, it was difficult to try and manage Jodie’s dynamic range. The compressor I added somewhat helped in this area. I wanted to give the impression of more than one vocalist. Ordinarily you would double the vocals in this case, but because I didn't have enough unique takes to achieve this, I decided to duplicate one of the voice regions and offset it a little from the other to alleviate reinforcing frequencies. Although this produced a degree of phasing (usually considered undesirable), in this case I thought it sounded ok.

"Need A Hit" 2:33

Download - Sibelius Score
  • "Self Reflective Mirrors"
Recording:

Because of the nature of the composition, I initially wanted to have everyone play together, but because of changed circumstances, this couldn’t happen. Jodie need to be somewhere within the first hour of recording, so making do with the circumstances, I made the decision to record her before doing anything else, and then just layer her track over the rest of us playing together. It was also suppose to go for 9 minutes, but because I added a degree of flexibility to my patch, I was able to make it go for half this length allowing Jodie to leave in time.

The biggest (wasn’t really that big) hurdle I faced was trying to get all instruments around the laptop displaying the max patch (score). Originally I was going to use the projector on level 4 to project the score up on a screen, but for some reason I didn’t get around to organising that (not sure why I didn’t do this). If I were to record it again with more instruments, then I would definitely consider a projector, or larger monitor.

The Juno-6 also had a hum that in some cases would be considered a bad thing, but I liked the authentic analogue sound signature it expressed.

Microphones and Placements:

Voice
Microphone – U89i (Hyper Cardiod) + Popper Stopper.
Placement – In front of mouth

Electric Guitar
Microphone – SM57
Placement – couple of centimetres away from amp. Slightly offset from cone and on an angle.

Juno-6
DI

Piano
Microphone – 2x U87 (one Fig 8, one Omni)
Placement – M/S Technique. Placed over sound board.

Production:

To fulfil my compositional aesthetic of a dry, raw, and live mix, I didn’t apply many artificial sounding effects. I also wanted a very dynamic piece of music, so I laid back on the compressors. Most of my concentration for this mix was directed to achieving the correct levels between instruments and filling in the gaps of sound colour I wasn’t able to achieve through the recording process.

Voice
Like with "Need A Hit", I decided to copmress the voice a little because of the wild dynamic levels (which is good musically, but would require extra mixing time without a compressor).

Guitars
The same case as the Piano. No effects. At one point I was considering adding a light Compressor, but eventually decided it wasn't necessary.

Juno-6
Great playing by Matt, just an undesirable sound. Compared to the other instruments, I spent the most time on the Juno-6 trying to change its original recorded sound. At the time of recording, the sound didn’t bother me, but when it came to mixing, I realised that it didn’t fit to well with the other instruments. The original sound was very trebly so I placed a LPF and Reverb on it, which did act to subdue it a little. I still don’t think the sound fits perfectly well, but I guess it adds a unique element to the mix.

Piano
I liked the original recorded piano sound, so I decided to leave natural, stripped naked of effects.

Max Patch:

















I've realised that by creating this piece of music and max patch using random pictures from the net, I have probably infringed upon some moral, ownership, and copyright laws by not asking permission from the owner. I was originally going to post the max patch with the pictures I used for the recording, but because I dont want to push it and get my arse sued, I've decided to post the patch with generic pictures. Anyone can overwrite the generic pictures with their own by copying the new pictures over the old ones using the same name. The pictures reside in the "PICS" folder.

Please excuse inefficient programming but the patch was written the day before the recording, so even though I thought of more effecient programming throughout the constructin of the patch, I didn't have time to go back and impliment it.

Download - "Self Reflective Mirrors" Max Patch

Performance Instructions:
The idea started when I found this great site with a large archive of interesting scales. Seeing this site inspired me to create the max patch/composition.

There are 9 cycles, each with a corresponding scale from 2 notes to 9 notes.
In in the example picture, each cycle lasts 4 seconds (indicated by the number box in the top right), but in the actual recording, each cycle lasted 30 seconds.

The cycle progress is indicated by the four yellow lights above the picture as they cycle from left to right. A new cycle begins whtn the first light is lit up.

Each cycle can be divided into two creating half cycles. A half cycle is initiated when the third light lights up (like in the picture).

At the start of every new cycle the following happens:

* A new scale is chosen with an extra note from the previous scale. e.g. from a 3 note scale in the previous cycle changes to a 4 note scale in the new cycle.
* Notes from the current scale are randomly distributed amongs the four keyboards below. These are the notes a given player is allowed to play.
* A new picture appears.

At the start of every half cycle:

* A new set of randomly chosen notes from the same scale are distrubuted
* A new picture appears

The vocalist simply creates any sort of sounds the pictures inspire in them.

If you have a look at the patch, it will all become clearer.

"Self Reflective Mirrors" 4:33

Friday, June 09, 2006

Week 13 - Catch Up

  • Practical 1 - Audio Arts - Studio Tour (FATTRAX) [1]
I turned up a little late to this class not entirely sure how to get to the studio. When I arrived he was talking about how his mixer worked. I then emphasised my bad start to the day by knocking over David's nice warm coffee (I hope it wasn't expensive peculated coffee). Luckily it didn't spill all over his hardware modules. He then went on to show us the rest of the studio. I found it very interesting when he explained the materials used to construct his studio. After hearing (or not hearing rather) his studio, I could finally see where he was coming from when he always talked about his studio being a lot deader that Studio 1. He correctly pointed out that you could also hear a lot more detail in a mix because of the well designed studio. He then showed us his vocal booth and instrumental room. We later proceeded to listen to some of his mixes and he explained how they were produced. Finally we finished off the day 1 hour overtime with a dash of laughter and tears.

I am very excited at the prospect of being taught by Ashley Klose next semester, but at the same time it would be sad not to continue learning from David Grice. At the expense of other lessons, I would gladly take on more Tech subjects. I hope for the sake of future tech students that he will return to teach them for years to come.
  • Practical 2 - Creative Computing - Supercollider (10) [2]
This week we looked at 'Mix.ar', and different applications of Array. Should be fun to use them in my major.
  • Music Technology Forum - Workshop - Workshop on Steve Reich, Pink Floyd, and Tristram Cary [3]
Steve Reich – “Electric Counterpoint”.

This piece was performed on electric guitar by Pat Metheny. I’ve like all Reich works I’ve come across, and this was no exception. I particularly liked the guitar chord swells towards the end.

Tristram Cary – “Soft Walls”

This piece was written on the Sinclavier. I only wish the Sinclavier was still with EMU as I would have loved to have a play with this thing. This piece sounded very much like AM synthesis, and at times reminded me of organs or brass. Although I wasn’t overly impressed with the piece, I did think it was a sonic journey worth listening to.

Pink Floyd – “Interstellar Overdrive”

The piece started off like a normal rock song, but then morphed into this strange alien-like sound scape with this very cool high note guitar loop near the beginning. Like with “Soft Walls”, this was also a musical journey. Whilst listening to this piece I was thinking that to path the future, one must study the past.

Steve Reich – “Different Trains”

Played by the Kronos Quartet, this piece also featured vocal samples of train song, which sounded much unlike that of bird song. I'm not sure when Steve Reich wrote “City Life”, but the compositional style of this piece was very much akin to that of “City Life”. I found that I could absorb and learn a lot more from this piece than I could the others. I guess this is because I understand and speak the language of Reich much more fluently. I really liked it how he matched the rhythm of the instrumental part with the rhythm of the voice.

Tristram Cary – “Steam Music”

I realised I hadn’t actually taken any notes for this piece. The lack of notes implies that I probably didn’t think much of this piece.
  • References
    [1] Grice, David. 2006. Tour of Fattrax Studio. Fattra, 6 June.
    [2] Haines, Christian. 2006. Lecture on Supercollider. University of Adelaide, 8 June.
    [3] Harris, David. 2006. Workshop on Steve Reich, Pink Floyd, and Tristram Cary. University of Adelaide, 8 June.