|
|
|
|
Drones for Tim is dedicated to a friend of mine, Tim Rush. In fact the idea for the piece was his. Following a very loud and long rehearsal of Chris Rouse's Ku-Ka-Ilimoku (which is hard on the ears), Tim and I were driving in my car to his apartment. The radio was babbling some annoying and generic infomercial (as it always is) and Tim said, while turning off the stereo, "sometimes all ya wanna hear is a drone".
I'd like to think that Tim and I share a similar aesthetic and I had a pretty good idea what he meant by that. I spent the next evening in the studio making sound files with Supercollider and burned a disc for Tim that night. Tim is one of the few people I know who can play Tabla (North Indian drums) and some of the sounds I used in this piece may resemble the drone that is commonly played with the Indian Tabla.
Drone 1
This is a very simple sound with some interesting effects over a long period of time. The actual drone I made for Tim was about 10 minutes in length. Essentially, the goal here was to create a sound wave (simple in structure like a Sine Wave), then modify it's phase over time.
The code below creates two pitches (an octave apart) and modulates the phase of the waves using a Triangle wave.
(
t = Wavetable.sineFill(512, 1.0/[1,2,3,4,5,6]);
Synth.play(
{
a = Osc.ar(t, [38,76], LFTri.kr(0.1),1);
Limiter.ar(a,0.8,0.1)
});
)
Listen to this drone.
Drone 2
Consistent with the first drone, this sound has greatest effect over a long period of time. I used the first drone as a basis for this one and made only two noticable changes:
- I used a chorusing oscillator instead of a simple oscillator.
- I decreased the duration of the phase modulation.
The code below creates two pitches (an octave part) and modulates the phase of the waves using a Triangle wave.
(
t = Wavetable.sineFill(512, 1.0/[1,2,3,4,5,6]);
Synth.play(
{
a = COsc.ar(t, [40,80], LFTri.kr(0.08,mul:0.1),1);
Limiter.ar(a,0.8,0.1)
});
)
Listen to this drone.
Drone 3
One of the most interesting aspects of wave synthesis (in my opinion) is the wonderful variety of sounds that are produced using simple wave structures and slow modulating effects. In the following code you'll see four wavetables being used in the chorusing oscillator. I enjoy the way various harmonics are presented and modified by the overlap of the following tables.
I should note also that this is essentially one of the examples written by James McCartney in the Supercollider example documentation. (Thanks James!)
I have used the Low-Frequency Triangle wave and Fast Sine Oscillator to modulate the sound.
(
var t1, t2, t3, t4;
t1 = Wavetable.sineFill(512, [0,0,0,1,0,0,0,1]);
t2 = Wavetable.sineFill(512, 1.0/[1,2,3,4,5,6,7,8,9,10]);
t3 = Wavetable.sineFill(512, [0,0,0,0,0,1,0,1,1,0,1,1,1]);
t4 = Wavetable.sineFill(512, [0,0,1,0,0,0,1,0,0,1,0,0,1]);
Synth.play({
a = OscX4.ar(t1,t2,t3,t4, [36,72],
LFTri.kr(0.05), FSinOsc.kr(0.07), 1);
Limiter.ar(a,0.8,0.1)
});
)
Listen to this drone.
Drone 4
I wanted to provide Tim with a "non-pitched" drone along with the others. In the fourth drone, (although I've lost the code), I used the Klang object. This sound is created using a group of pitches and/or random frequencies that all sound together.
It seems that I've lost the code that I used to create this sound...sorry!
Listen to this drone.
Drone 5
In the fourth drone (above), I created a sound using a group of random frequencies that all sound simultaneously. Based on that idea I made this fifth drone. The difference in sound however is substantial. This drone is made of random frequencies that play sequentially using the OverlapTexture object.
(
Synth.play({
a = OverlapTexture.ar({
Pan2.ar(
SinOsc.ar(50+120.rand,mul:0.2),
1.0.rand)
}, 10, 20, 4, 2);
Limiter.ar(a,0.8,0.1)
});
)
Listen to this drone.
Drone 6
This sixth piece is of course related to the previous idea; however, I decided to use specific pitches rather than random frequencies.
(
Synth.play({
a = OverlapTexture.ar({
Pan2.ar(
f = #[27,32,37,
39,42,44,
46,48,49,
51,54,56,
58,60,61,
63,65,66,
68,70,75].choose.midicps;
SinOsc.ar(f,0.2),1.0.rand)
},
sustainTime:10,
transitionTime:4,
density:6,
numChannels:2);
Limiter.ar(a,0.7,0.1)
});
)
Listen to this drone.
|
|
|
|