Monday, August 07, 2006

Week 2

  • Practical 1 - Audio Arts - Systems Analysis & Game Sound Analysis [1]
This week we were asked to do a Systems Analysis for the system we are developing audio for. Here is:

System: PC
It's too early in development to determine minimum or recommended system requirements

CPU: Average (guess)
RAM: Average (guess)
Storage: 1Gig total game (guess)
Bus Speed: Samples loaded into ram, or streaming from disk (guess)
ADC/DAC: assume lowest common denominator - built in audio AC97 (guess)

Medium: DVD/CD (guess)
Streaming off HD, not DVD/CD

Reproduction: Speaker Array/Headphones
Mono/Stereo or Multichannel 5.1/7.1 (hopefully)

Game Engine - Torque
Audio Engine - OpenAL

*supported by Creative Labs
- Option of supporting EAX 5 (unlikely support due to time constraints)

The general functionality of OpenAL is encoded in source objects, audio buffers and a single listener. A source object contains a pointer to a buffer, the velocity, position and direction of the sound, and the intensity of the sound. The listener object contains the velocity, position and direction of the listener, and the general gain applied to all sound. Buffers contain audio data in PCM format, either 8- or 16-bit, in either monaural or stereo format. The rendering engine performs all necessary calculations as far as distance attenuation, Doppler effect, etc.[2]

Sample Rate 44.1 (guess)
Bit Rate: no idea
Number of Channels: up to 7.1
  • Practical 2 - Creative Computing - Splice and Dice [3]
We basically covered BBCut this week. I was going to use CutMixer, but I wasn't completely sure how it worked and fit into the rest of the patch.




// Week 2
(

// Global Variables
~thisPath = (PathName.new(Document.current.path)).pathOnly;

// Sound Files
~sf = BBCutBuffer(
filename: ~thisPath++"ringroad.wav",
beatlength: 20 // Number of beats in the soundfile, or used to estimate BPS
);

~sf1 = BBCutBuffer(
filename: ~thisPath++"ringroad.wav",
beatlength: 8 // Number of beats in the soundfile, or used to estimate BPS
);

~sf2 = BBCutBuffer(
filename: ~thisPath++"getit.wav",
beatlength: 8
);

~sf3 = BBCutBuffer(
filename: ~thisPath++"beat76.wav",
beatlength: 8
);

// Clock Setups
// Clock 1
~clock= ExternalClock( // Playback speed (8 and 1 are good)
tempoclock: TempoClock(
tempo: 1
)
);

~clock.play;

// Clock 2
~clock2= ExternalClock( // Playback speed (8 and 1 are good)
tempoclock: TempoClock(
tempo: 1
)
);

~clock2.play;

// Clock 3
~clock3= ExternalClock(
tempoclock: TempoClock(
tempo: 1 // Playback speed 1=normal, 0.5=half speed

)
);

~clock3.play;

// Clock 4
~clock4= ExternalClock(
tempoclock: TempoClock(
tempo: 1 // Playback speed 1=normal, 0.5=half speed

)
);

~clock4.play;

)

// The Vault Dweller (Works)
(
Routine.run({ // What does the 'run' method mean?

a = BBCut2(
cutgroups: CutBuf1(
bbcutbuf: ~sf,
offset: 0.35
),

proc: BBCutProc11(
sdiv: 4, // How many sub divisions (how often it will cut) - can be rhythmic at higher values
barlength: 0.5, // x/4 Time Sig (how much of length to play)
phrasebars: 0.5, // The length of the current phrase is barlength*phrasebars.
numrepeats: 6, // Total number of repeats for normal cuts. (higher numbers create less frequent cut phrases)
stutterchance: 1, // Chance of repeating Cut
stutterspeed: 1, // Integer multiple of subdiv
stutterarea: 1 //a stutter is permissible within this proportion of the last bar of a phrase. 0.5 for a half bar at 4/4
)
).play(~clock);
})
)

// The Chosen One
(
Routine.run({

b = BBCut2(
cutgroups: CutBuf1(
bbcutbuf: ~sf1,
offset: 0.3
),

proc: BBCutProc11(
sdiv: 8,
barlength: 3,
phrasebars: 2,
numrepeats: 3,
stutterchance: 0.5,
stutterspeed: 3,
stutterarea: 1.0
)
).play(~clock);
})
)

// Marcus
(
Routine.run({

c = BBCut2(
cutgroups: CutBuf1(
bbcutbuf: ~sf2,
offset: 0.3
),

proc: BBCutProc11(
sdiv: 8,
barlength: 3,
phrasebars: 2,
numrepeats: 3,
stutterchance: 0.5,
stutterspeed: 3,
stutterarea: 1.0
)
).play(~clock2);
})
)

// 3rd
(
Routine.run({

d = BBCut2(
cutgroups: CutBuf1(
bbcutbuf: ~sf3,
offset: 0.3
),

proc: BBCutProc11(
sdiv: 16,
barlength: 3,
phrasebars: 2,
numrepeats: 3,
stutterchance: 0.5,
stutterspeed: 3,
stutterarea: 1.0
)
).play(~clock3);
})
)

// Free all Buffers
(
a.end;
b.end;
c.end;
d.end;
)


  • Music Technology Forum - Presentation - Presentations by Luke Digance, and John Delany [4]
Luke Digance - “Concrete Harmony”

Luke presented his Musique concrète piece he did last semester. For this piece he directly challenged the 'Musique concrète' idea of dereferencing sounds from their source and treating them as sound objects, but instead examined the fundamental frequency of each sound turned them into a pitch. From there pitch shifted these sounds to form notes that make up chords. He basically wrote a piece of music that falls into western harmony, but with found sounds instead pitched instruments. Although the piece was perhaps slightly repetitive at times, the repetition was not enough to bore me. Overall I thought the piece sounded really great and commended him on his good idea. I could also hear the influence of Aphex Twin that he mentioned.

John Delany – “Performance Symmetry”

John also presented his Audio Arts piece from last semester. The idea behind this piece was to record Benjamin Probert and Patrick McCartney singing on a single note, but emphasising harmonics. I gathered this was harmonic singing. From there John pitch shifted the voices within a range of 3 octaves to form a symmetrical curve of pitches. First of all I thought his score presentation was fantastic; Very clear and excitable to the chemicals in my brain. I also loved the distortion he applied toward the end of the piece. From an orchestration point of view, I had never heard harmonic singing with distortion, but I thought it sounded fantastic. Come to think of it, it’s probably an instrumental combination you’d least expect. My only criticism however is that just as I was getting into it, the piece abruptly faded out over about 300 milliseconds. When asked, about this John replied that this was part of his deliberate aesthetic. Well fair enough, I have done similar abrupt finishes to pieces in the past, but personally I would have liked it to go on for at least twice as long. It was otherwise a great piece.
  • Music Technology Forum - Workshop - Improvisation Groups!
This semester we're doing something new and experimental. For our workshop component, three groups need to work out techniques for improvisation and make a recording. The group I was chosen to be in contain the following people:

Tyrell Blackburn
Vinny Bhagat
Poppi Doser
Patrick McCartney
Daniel Murtagh
Luke Digance
Tim Swalling
Seb Tomczak

At this stage we have only started brainstorming ideas. Here are some of the ideas thrown about:

Max/MSP
Old PC sound hardware such as Adlib or PC speaker (personal interest)
Jitter
SuperCollider
Analogue equipment
- VCS 3
- Reel to Reel
Networking of machines: This is something that could very well work as all but three of us have laptops, four of which are Macs that also have wireless. I am particularly interested in exploring this area as it allows a more direct manipulation and interaction through improvisation.

At this stage I don’t feel comfortable enough with SuperCollider. I mean I could very well use it, but it would be more a practice of experimentation (and half learning the program) than actually directly realising my ideas. Experimentation is always good, but personally I would like to take my ideas to the next level with this improvisation, and I believe that falling back on Max/MSP would allow me to do this. Who knows, I may change my mind later on in the Semester...
  • References
    [1] Haines, Christian. 2006. Lecture on Game Audio. University of Adelaide, 1 August.
    [2] Wikipedia. 2006. "OpenAL". http://en.wikipedia.org/wiki/Openal. 29 July. Accessed on 31 July 2006.
    [3] Haines, Christian. 2006. Lecture on Supercollider. University of Adelaide, 3 August.
    [4] Digance, Luke. Delany, John. 2006. Student Presentations. University of Adelaide, 3 August.

0 Comments:

Post a Comment

<< Home