Packages

  • package root
    Definition Classes
    root
  • package de
    Definition Classes
    root
  • package sciss

    The interfaces are grouped into the following packages:

    Welcome to the Mellite API documentation.

    The interfaces are grouped into the following packages:

    The Lucre transactional object model:

    • de.sciss.lucre.stm is the base package for transactions, with things like Obj, Txn, Sys, and Cursor
    • de.sciss.lucre.artifact is the base package for file system artifacts, with classes Artifact and ArtifactLocation
    • de.sciss.lucre.expr is the base package for expression types such as IntObj, DoubleObj, etc.

    Other useful packages:

    • de.sciss.synth.io for reading and writing audio files
    • de.sciss.osc for general Open Sound Control interfaces
    Definition Classes
    de
  • package synth
    Definition Classes
    sciss
  • package ugen
    Definition Classes
    synth
  • object Mix extends ProductReader[Mix] with Serializable

    A graph element that mixes the channels of a signal together.

    A graph element that mixes the channels of a signal together. It works like the sclang counterpart.

    The Mix companion object contains various useful mixing idioms:

    - Mix.tabulate(n: Int)(fun: Int => GE): corresponds to Seq.tabulate and to Array.fill in sclang. - Mix.fill(n: Int)(thunk: => GE): corresponds to Seq.fill. - Mix.seq(elems: GE*): A shortcut for Mix(GESeq(elems: _*)).

    A separate graph element is Mix.mono. Mix.mono(elem: GE) flattens all channels of the input element before summing them, guaranteeing that the result is monophonic.

    Finally, Mix.fold is an idiom that not actually adds elements, but recursively folds them. Thus, Mix.fold(elem: GE, n: Int)(fun: GE => GE) is equivalent to

    (1 to n).foldLeft(elem) { (res, _) => fun(res) }

    Mix.fold is often used in the SuperCollider examples to apply a filtering process such as reverberation several times. For cases where the iteration index is needed, the full form as shown above can be used instead.

    Examples
    // non-nested multi-channel signal reduced to mono (1)
    play {
      Mix(SinOsc.ar(440 :: 660 :: Nil)) * 0.2 // --> SinOsc.ar(440) + SinOsc.ar(660)
    }
    // non-nested multi-channel signal reduced to mono (2)
    play {
      Mix(Pan2.ar(SinOsc.ar)) * 0.2 // --> left + right
    }
    // mix inner channels
    play {
      // --> [left(440) + left(660), right(440) + right(660)]
      Mix(Pan2.ar(SinOsc.ar(440 :: 660 :: Nil))) * 0.2
    }
    // enforce monophonic mix
    play {
      // --> left(440) + left(660) + right(440) + right(660)
      Mix.mono(Pan2.ar(SinOsc.ar(440 :: 660 :: Nil))) * 0.2
    }
    // combine Mix(), Mix.fill(), Mix.fold()
    // from original SC examples: reverberated sine percussion
    play {
      val d = 6    // number of percolators
      val c = 5    // number of comb delays
      val a = 4    // number of allpass delays
    
      // sine percolation sound :
      val s = Mix.fill(d) { Resonz.ar(Dust.ar(2.0 / d) * 50, Rand(200, 3200), 0.003) }
    
      // reverb pre-delay time :
      val z = DelayN.ar(s, 0.048)
    
      // 'c' length modulated comb delays in parallel :
      val y = Mix(CombL.ar(z, 0.1, LFNoise1.kr(Seq.fill(c)(Rand(0, 0.1))).madd(0.04, 0.05), 15))
    
      // chain of 'a' allpass delays on each of two channels (2 times 'a' total) :
      val x = Mix.fold(y, a) { in =>
        AllpassN.ar(in, 0.050, Seq(Rand(0, 0.050), Rand(0, 0.050)), 1)
      }
    
      // add original sound to reverb and play it :
      s + 0.2 * x
    }
    // Mix.tabulate usage
    // from original SC examples: harmonic swimming
    play {
      val f = 50       // fundamental frequency
      val p = 20       // number of partials per channel
      val offset = Line.kr(0, -0.02, 60, doneAction = freeSelf) // causes sound to separate and fade
      Mix.tabulate(p) { i =>
        FSinOsc.ar(f * (i+1)) * // freq of partial
          LFNoise1.kr(Seq(Rand(2, 10), Rand(2, 10)))  // amplitude rate
          .madd(
            0.02,     // amplitude scale
            offset    // amplitude offset
          ).max(0)    // clip negative amplitudes to zero
      }
    }
    Definition Classes
    ugen
    See also

    Reduce

    BinaryOpUGen

  • Mono

final case class Mono(elem: GE) extends GE.Lazy with Product with Serializable

Linear Supertypes
Serializable, GE.Lazy, GE, Expander[UGenInLike], Lazy, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Mono
  2. Serializable
  3. Lazy
  4. GE
  5. Expander
  6. Lazy
  7. Product
  8. Equals
  9. AnyRef
  10. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new Mono(elem: GE)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  6. val elem: GE
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  9. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  10. def makeUGens: UGenInLike

    Abstract method which must be implemented by creating the actual UGens during expansion.

    Abstract method which must be implemented by creating the actual UGens during expansion. This method is at most called once during graph expansion

    returns

    the expanded object (depending on the type parameter U)

    Attributes
    protected
    Definition Classes
    MonoExpander
  11. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  13. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  14. def numOutputs: Int
  15. def productElementNames: Iterator[String]
    Definition Classes
    Product
  16. def productPrefix: String
    Definition Classes
    Mono → Product
  17. def rate: MaybeRate
    Definition Classes
    MonoGE
  18. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  19. def toString(): String
    Definition Classes
    Mono → AnyRef → Any
  20. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  21. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  22. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from Serializable

Inherited from GE.Lazy

Inherited from GE

Inherited from Expander[UGenInLike]

Inherited from Lazy

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped