DegreeToKey

object DegreeToKey extends ProductReader[DegreeToKey]

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
trait Product
trait Mirror
trait ProductReader[DegreeToKey]
class Object
trait Matchable
class Any

Type members

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Inherited from
Mirror
type MirroredLabel <: String

The name of the type

The name of the type

Inherited from
Mirror

Value members

Concrete methods

def ar(buf: GE, in: GE, octave: GE): DegreeToKey
Value Params
buf

buffer which contains the steps for each scale degree.

in

input index signal

octave

number of steps per octave in the scale.

def kr(buf: GE, in: GE, octave: GE): DegreeToKey
Value Params
buf

buffer which contains the steps for each scale degree.

in

input index signal

octave

number of steps per octave in the scale.

def read(in: RefMapIn, key: String, arity: Int): DegreeToKey