FBSineN

object FBSineN extends ProductReader[FBSineN]

A non-interpolating sound generator based on the difference equations:

x[n+1] = sin(im * y[n] + fb * x[n])
y[n+1] = (a * y[n] + c) % 2pi

This uses a linear congruential function to drive the phase indexing of a sine wave. For im = 1, fb = 0, and a = 1 a normal sine wave results.

===Examples===

// default initial parameters
play { FBSineN.ar(SampleRate.ir/4) * 0.2 }
// increase feedback
play { FBSineN.ar(SampleRate.ir, 1, Line.kr(0.01, 4, 10), 1, 0.1) * 0.2 }
// increase phase multiplier
play { FBSineN.ar(SampleRate.ir, 1, 0, XLine.kr(1, 2, 10), 0.1) * 0.2 }
// modulate frequency and index multiplier
play { FBSineN.ar(LFNoise2.kr(1).mulAdd(1e4, 1e4), LFNoise2.kr(1).mulAdd(16, 17), 1, 1.005, 0.7) * 0.2 }
// randomly modulate parameters
play {
 FBSineN.ar(
   LFNoise2.kr(1).mulAdd(1e4, 1e4),
   LFNoise2.kr(1).mulAdd(32, 33),
   LFNoise2.kr(1) * 0.5,
   LFNoise2.kr(1).mulAdd(0.05, 1.05),
   LFNoise2.kr(1).mulAdd(0.3, 0.3)
 ) * 0.2
}
See also
Companion
class
trait Product
trait Mirror
trait ProductReader[FBSineN]
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: FBSineN
def ar(freq: GE, im: GE, fb: GE, a: GE, c: GE, xi: GE, yi: GE): FBSineN
Value Params
a

Phase multiplier amount

c

Phase increment amount

fb

Feedback amount

freq

Iteration frequency in Hertz

im

Index multiplier amount

xi

Initial value of x

yi

Initial value of y

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