ModalFreq


Control rate player


This uses the same pitch model as Event Patterns.

see the Pitch model here: Streams-Patterns-Events5


ModalFreq.new( degree, scaleArray, root, octave, stepsPerOctave )


degree

a control rate player such as StreamKrDur that outputs degrees 0..12

scaleArray

a FloatArray used to map degrees to pitches

root

octave

stepsPerOctave


This actually returns a Patch using the pseudo-ugen ModalFreqUGen.


Used as a kr rate Player.


(

m = ModalFreq.new(

StreamKrDur.new(Pseq(Array.series(12,1),inf), 0.25, 0.1), 

FloatArray[ 1,3,5,7,9,11 ], 

0, 

StreamKrDur(Pbrown(2,6,1) + Pseq([0,1,2,4,8],inf),Prand([0.25,1.0,4.0,8.0])), 

8

); 

Patch({ arg freq=200;

Pulse.ar(

[freq, freq * 0.5],

LFNoise1.kr([0.3,0.1],0.5,0.5),

0.1)

},[

m

]).play


)






Used as a Stream.  


It can be used directly in a Pbind, but there's not much point since the pattern event system already has the same pitch model.

(

Pbind(

\freq,  ModalFreq(Pseq([1,2,3,4],inf))

).play

)



Here its used as a stream, and its StreamKrDur iterating the stream and setting the values of a bus on the server.

(


Patch({ arg freq=100,amp=1.0;

SinOsc.ar([freq,freq + 30],0,amp)

},[

StreamKrDur(

ModalFreq(Pseq([1,2,3,4],inf)), 

Pseq([0.25,0.5,0.75],inf),

0.1),

1

]).play;


)