DNoiseRing

object DNoiseRing extends ProductReader[DNoiseRing]

Demand rate UGen implementing a Wiard noise ring.

"In latter model synthesizers, digital noise sources began to appear in place of analog ones. Traditionally, a pseudo-random shift register set up for optimal length. By optimal length, it is meant that every state of all available bits will appear at some time, but the order is unknown. Essentially a counter that counts in an unknown order. This represents the maximum state of information "entropy" available for that number of bits. But music has close self-similarity over short periods of time. That is, it repeats itself with changes appearing slowly. This shift register generator is designed to give control of the rate of appearance of new information. It has a tight set of controls over how random it actually is and how fast change occurs." (source: http://mamonu.weebly.com/wiard-noisering.html)

===Examples===

// plain 32bit value scaled to 0..1
play {
 val noise = DNoiseRing(change = MouseX.kr(0, 1), chance = 0.51, numBits = 32)
 Demand.ar(Impulse.ar(10000), noise) / 2.0.pow(33)
}
// sequencer
play {
 val noise = DNoiseRing(change = MouseX.kr(0, 1), chance = MouseY.kr(0, 1), numBits = 32)
 val tr    = Impulse.ar(10)
 val freq  = (Demand.ar(tr, noise)).linLin(0, 2.0.pow(32), 40, 40+48).midiCps
 freq.poll(tr, "freq")
 Pan2.ar(SinOsc.ar(freq) * 0.25)
}

This is a third-party UGen (DEINDUGens).

See also

Duty

Demand

Companion
class
trait Product
trait Mirror
trait ProductReader[DNoiseRing]
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 read(in: RefMapIn, key: String, arity: Int): DNoiseRing