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 pitch
val base = DegreeToKey.kr(buf, in = MouseX.kr(0, 15), octave = 12) + 72
val noise = LFNoise1.kr(Seq(3, 3)) * 0.04 // low freq stereo detuning
// lead tone
val lead = SinOsc.ar((base + noise).midiCps)
// drone 5ths
val drone = RLPF.ar(LFPulse.ar(Seq(48.midiCps, 55.midiCps), 0.15),
SinOsc.kr(0.1).mulAdd(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
}
- See also
- Companion
- class