A UGen that uses an input signal as an index into an octave repeating table of
pitch classes. The input is truncated to an integer, and indices wrap around the
table and shift octaves as they do.
Examples
// modal space where mouse x controls pitch step
play {
// initialize the scale buffer (Dorian)val scale = Vector(0, 2, 3.2, 5, 7, 9, 10)
val buf = LocalBuf(scale.size)
SetBuf(buf, scale)
// base MIDI pitchval base = DegreeToKey.kr(buf, in = MouseX.kr(0, 15), octave = 12) + 72val noise = LFNoise1.kr(Seq(3, 3)) * 0.04// low freq stereo detuning// lead toneval lead = SinOsc.ar((base + noise).midicps)
// drone 5thsval drone = RLPF.ar(LFPulse.ar(Seq(48.midicps, 55.midicps), 0.15),
SinOsc.kr(0.1).madd(10, 72).midicps, 0.1)
val mix = (lead + drone) * 0.1// add some 70's euro-space-rock echo
CombN.ar(mix, 0.31, 0.31, 2) + mix
}
A UGen that uses an input signal as an index into an octave repeating table of pitch classes. The input is truncated to an integer, and indices wrap around the table and shift octaves as they do.
Examples
WrapIndex