Packages

object FBSineN extends ProductReader[FBSineN] with Serializable

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

FBSineL

FBSineC

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. FBSineN
  2. Serializable
  3. ProductReader
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. def ar(freq: GE = Nyquist(), im: GE = 1.0f, fb: GE = 0.1f, a: GE = 1.1f, c: GE = 0.5f, xi: GE = 0.1f, yi: GE = 0.1f): FBSineN

    freq

    Iteration frequency in Hertz

    im

    Index multiplier amount

    fb

    Feedback amount

    a

    Phase multiplier amount

    c

    Phase increment amount

    xi

    Initial value of x

    yi

    Initial value of y

  2. def ar: FBSineN
  3. def read(in: RefMapIn, key: String, arity: Int): FBSineN
    Definition Classes
    FBSineNProductReader