View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide

Cottle Chapter 7 - Intervals

Home   How To   Code Pool   Public Library   Theory   Events
[Cottle examples]

7. Intervals

7 Assignment seven


// 7.1  intervals

s = Server.internal;
s.boot;

(
{
	f = 400; //fundamental
	r = 2/1; //ratio for second note in interval
	Mix.ar(FSinOsc.ar([f, f*r]))*0.4
}.scope;
)

//7.2 intervals

// Since the internal server by default has only 2 output channels,
// I have to use different buses for synthesis and display. I'll also route
// the first 2 channels to the left and right outputs.

// This illustrates basic audio signal routing: synthesis in one chain on
// an internal bus, then routing to the hardware out afterward.

(
{
	f = 200;	// I'm lowering the base frequency so you can see the waveshapes better.
	r = 2/1;
	a = FSinOsc.ar(f, 0, 0.4);
	b = FSinOsc.ar(f*r, 0, 0.4);
	[a, b, a+b]
}.scope(3, 10);

	// read 2 channels from buses 10 and 11 and play out to buses 0 and 1
{ In.ar(10, 2) }.play(s, 0);
)

//7.3 chord plot

// Again, no plot. Using scope instead.

{ Mix.ar(FSinOsc.ar([200, 300], 0, 0.3)) }.scope;

//7.4 interval plots 

{ Mix.ar(FSinOsc.ar([200, 200*4/3], 0, 0.3)) }.scope;

{ Mix.ar(FSinOsc.ar([200, 200*5/4], 0, 0.3)) }.scope;

{ Mix.ar(FSinOsc.ar([200, 200*8/5], 0, 0.3)) }.scope;

{ Mix.ar(FSinOsc.ar([200, 200*64/45], 0, 0.3)) }.scope;

//7.5 audio frequencies

{ Saw.ar(MouseX.kr(1, 1200), 0.5) }.scope;

//7.6 ratios from LF to audio rate

(
{
	var freq, ratioNum, ratioDenum; //declare two variables
	ratioNum = 3; //assign numerator
	ratioDenum = 2; //assign denominator
	freq = MouseX.kr(1, 110); //freq is mouse control
	LFSaw.ar(
		[freq, freq*(ratioNum/ratioDenum)], 
		0, 
		0.3)
}.scope;
)


Link to this Page