Package

de.sciss

synth

Permalink

package synth

The synth package provides some extension methods. In particular converting numbers to constant graph elements, operators on graph elements and allowing succinct creation of named controls. Furthermore, it contains the play function to quickly test graph functions.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. synth
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. sealed trait AddAction extends AnyRef

    Permalink

    Add-actions are used by the server to determine where to place a node with respect to other nodes.

    Add-actions are used by the server to determine where to place a node with respect to other nodes. They form an enumeration of integers which are represented by case objects being subclasses of this abstract class.

    The following actions are known:

  2. final case class AllocatorExhausted(reason: String) extends RuntimeException with Product with Serializable

    Permalink
  3. final case class AudioBus(server: Server, index: Int, numChannels: Int) extends Bus with Product with Serializable

    Permalink
  4. trait AudioRated extends AnyRef

    Permalink

    Utility trait that defines a rate method returning audio.

  5. final case class Buffer(server: Server, id: Int) extends ModelImpl[BufferInfo] with Product with Serializable

    Permalink
  6. final class BufferManager extends ModelImpl[BufferInfo]

    Permalink
  7. sealed trait Bus extends AnyRef

    Permalink
  8. final case class Completion[-T](message: Option[(T) ⇒ Packet], action: Option[(T) ⇒ Unit]) extends Product with Serializable

    Permalink
  9. sealed trait ControlABusMap extends AnyRef

    Permalink

    A mapping from an audio bus to a synth control.

    A mapping from an audio bus to a synth control.

    Note that a mapped control acts similar to an InFeedback UGen in that it does not matter whether the audio bus was written before the execution of the synth whose control is mapped or not. If it was written before, no delay is introduced, otherwise a delay of one control block is introduced.

    See also

    de.sciss.synth.ugen.InFeedback

  10. final case class ControlBus(server: Server, index: Int, numChannels: Int) extends Bus with Product with Serializable

    Permalink
  11. final case class ControlFillRange extends Product with Serializable

    Permalink
  12. sealed trait ControlKBusMap extends AnyRef

    Permalink

    A mapping from a control-rate bus to a synth control.

  13. trait ControlRated extends AnyRef

    Permalink

    Utility trait that defines a rate method returning control.

  14. sealed trait ControlSet extends AnyRef

    Permalink
  15. sealed trait Curve extends AnyRef

    Permalink
  16. trait DemandRated extends AnyRef

    Permalink

    Utility trait that defines a rate method returning demand.

  17. sealed trait DoneAction extends Product

    Permalink

    An enumeration of special codes used by some UGens to issue a related action when they they are "done".

    An enumeration of special codes used by some UGens to issue a related action when they they are "done". For example, a PlayBuf can be instructed to free its enclosing synth when the buffer has been played to the end, using the freeSelf done-action.

    The following actions are known:

  18. final case class FillRange(index: Int, num: Int, value: Float) extends Product with Serializable

    Permalink

    A fill range for control buses or buffers.

    A fill range for control buses or buffers.

    index

    sample offset into the buffer or channel offset into the bus. for multi channel buffers, multiply the frame offset by the number of channels

    num

    the number of samples to fill. for multi channel buffers, multiple the number of frames by the number of channels

    value

    the value to write to the bus or buffer in the given range

  19. final case class FillValue(index: Int, value: Float) extends Product with Serializable

    Permalink

    A tuple consisting of an index and value for that index.

    A tuple consisting of an index and value for that index.

    index

    sample offset into the buffer or channel offset into the bus. for multi channel buffers, multiply the frame offset by the number of channels

    value

    the value to write to the bus or buffer in the given range

  20. trait GE extends Product

    Permalink

    The main trait used in synthesis graph, a graph element, abbreviated as GE.

    The main trait used in synthesis graph, a graph element, abbreviated as GE.

    Graph elements are characterized by having a calculation rate (possibly unknown), and they embody future UGens, which are created by invoking the expand method. For each ugen in SuperCollider, there is a corresponding graph element defined in the ugen package, and these elements take again graph elements as arguments. Multi-channel expansion is thus deferred to the transition from SynthGraph to UGenGraph.

    Currently, also a lot of unary and binary operations are directly defined on the GE trait, although they might go into a separate GEOps implicit class in future versions.

    See also

    de.sciss.synth.SynthGraph

  21. final class GEOps extends AnyVal

    Permalink
  22. final class GraphFunction[A] extends AnyRef

    Permalink
  23. final case class Group(server: Server, id: Int) extends Node with Product with Serializable

    Permalink
  24. trait HasDoneFlag extends AnyRef

    Permalink

    Marks a ugen which sets a special done flag that can be read by ugens such as Done.

  25. trait HasSideEffect extends AnyRef

    Permalink

    Marks a ugen which has side effects such as writing to a bus or buffer, communicating back to the client, etc.

    Marks a ugen which has side effects such as writing to a bus or buffer, communicating back to the client, etc. Only side-effect ugens are valid roots of the ugen graph, that way other orphaned non-side-effect ugens are automatically removed from the graph.

  26. trait IsIndividual extends AnyRef

    Permalink

    Marks a ugen which is individual, that is two instances of that ugen are different even if all inputs are the same.

    Marks a ugen which is individual, that is two instances of that ugen are different even if all inputs are the same. This is the case for example for all ugens that depend on the random seed (as indicated by the sub-type HasRandSeed) or which mix onto buses or buffers (e.g. RecordBuf).

    Note that for example BufWr could be considered not individual as two identically parametrized BufWr instances produce exactly the same behaviour as one of them. However, they are in certain spots of the UGen graph in which they could be behave differently, for example if the computation order is BufWr -> BufRd -> BufRd. We thus defensively mark every ugen as individual which writes to a Buffer or Bus.

  27. trait Lazy extends Product

    Permalink

    Elements implementing the Lazy trait may participate in the building of a SynthGraph body.

    Elements implementing the Lazy trait may participate in the building of a SynthGraph body. They can be added to the current graph by calling SynthGraph.builder.addLazy. Then, when the graph is expanded, the force method is called on those registered elements, allowing them to either spawn new graph elements or actually expand to UGens which can be added to the ugen graph builder argument.

    In most cases, lazy elements will expanded to ugens, and thus the subtype Lazy.Expander is the most convenient way to implement this trait, as it already does most of the logic, and provides for GEs expand method.

    See also

    de.sciss.synth.Lazy.Expander

  28. sealed abstract class MaybeRate extends Product

    Permalink

    This trait denotes an optional server calculation rate.

    This trait denotes an optional server calculation rate. Either the rate is explicit, Rate, or it is undefined, UndefinedRate. In the latter case, a rate is implicitly derived from the input arguments of a UGen.

  29. abstract class Node extends ModelImpl[NodeChange]

    Permalink
  30. final class NodeIDAllocator extends AnyRef

    Permalink
  31. final class NodeManager extends ModelImpl[Update]

    Permalink
  32. sealed abstract class Rate extends MaybeRate with Ordered[Rate]

    Permalink

    The server calculation rate of a UGen or a UGen output.

    The server calculation rate of a UGen or a UGen output.

    The following rates are known:

    • scalar (only calculated once when a Synth is initialized.
    • control (one value per block)
    • audio (full audio sample rate)
    • demand (calculation specially triggered on demand)
  33. trait RawUGen extends AnyRef

    Permalink

    The raw UGen information as it is found in a final UGenGraph.

  34. final class RichDouble extends AnyVal with NAryGEOps

    Permalink
  35. final class RichFloat extends AnyVal with NAryGEOps

    Permalink
  36. final class RichInt extends AnyVal with NAryGEOps

    Permalink
  37. trait ScalarRated extends AnyRef

    Permalink

    Utility trait that defines a rate method returning scalar.

  38. trait Server extends ServerLike with Model[Update]

    Permalink
  39. trait ServerConnection extends ServerLike with Model[Condition]

    Permalink
  40. sealed trait ServerLike extends AnyRef

    Permalink
  41. final case class Synth(server: Server, id: Int) extends Node with Product with Serializable

    Permalink
  42. final case class SynthDef(name: String, graph: UGenGraph) extends Product with Serializable

    Permalink
  43. final case class SynthGraph(sources: IndexedSeq[Lazy], controlProxies: Set[ControlProxyLike]) extends Product with Serializable

    Permalink
  44. sealed trait UGen extends RawUGen with Product

    Permalink

    A UGen during graph building process is a more rich thing than RawUGen: it implements equality based on isIndividual status and may be omitted from the final graph based on hasSideEffect status.

  45. final case class UGenGraph(constants: IndexedSeq[Float], controlValues: IndexedSeq[Float], controlNames: IndexedSeq[(String, Int)], ugens: IndexedSeq[IndexedUGen]) extends Product with Serializable

    Permalink
  46. sealed trait UGenIn extends UGenInLike

    Permalink

    An element that can be used as an input to a UGen.

    An element that can be used as an input to a UGen. This is after multi-channel-expansion, hence implementing classes are SingleOutUGen, UGenOutProxy, ControlOutProxy, and Constant.

  47. sealed trait UGenInLike extends GE

    Permalink
  48. sealed trait UGenSource[U] extends Expander[U]

    Permalink
  49. final case class UGenSpec(name: String, attr: Set[Attribute], rates: Rates, args: IndexedSeq[Argument], inputs: IndexedSeq[Input], outputs: IndexedSeq[Output], doc: Option[Doc]) extends Product with Serializable

    Permalink

    Specification of a Unit Generator.

    Specification of a Unit Generator.

    name

    the name of the unit generator, as seen by the server

    attr

    a set of attributes which characterize the UGen, such as resource usage or uniqueness

    rates

    at which calculation rates the UGen runs, and whether the rate is implied

    args

    the constructor arguments of the UGen representation. This is the interface for the client-side instantiation and may include types other than GE, for example integers for fixed number of channels, etc., as well as definitions for default values.

    inputs

    the inputs as passed to the underlying UGen (server-side object). Inputs are things which expand to UGenInLike elements. Typically they correspond to client-side args arguments. The order of this sequence must be correctly reflecting the UGen plugin interface, whereas the order of the args sequence may diverge for an improved user interface.

    outputs

    a list of output specifications

    doc

    optional text documentation

  50. trait UsesRandSeed extends IsIndividual

    Permalink
  51. trait WritesBuffer extends HasSideEffect with IsIndividual

    Permalink
  52. trait WritesBus extends HasSideEffect with IsIndividual

    Permalink
  53. trait WritesFFT extends HasSideEffect with IsIndividual

    Permalink
  54. implicit final class rangeOps extends AnyVal

    Permalink

Value Members

  1. object Buffer extends Serializable

    Permalink
  2. object BufferManager

    Permalink
  3. object BuildInfo extends Product with Serializable

    Permalink

    This object was generated by sbt-buildinfo.

  4. object Bus

    Permalink
  5. object Client

    Permalink
  6. object Completion extends Serializable

    Permalink
  7. object ControlABusMap

    Permalink
  8. object ControlFillRange extends Serializable

    Permalink
  9. object ControlKBusMap

    Permalink
  10. object ControlSet extends ControlSetValueImplicits with ControlSetVectorImplicits

    Permalink
  11. object Curve

    Permalink
  12. object DoneAction

    Permalink
  13. object FillRange extends Serializable

    Permalink
  14. object FillValue extends Serializable

    Permalink
  15. object GE

    Permalink

    The UGen graph is constructed from interconnecting graph elements (GE).

    The UGen graph is constructed from interconnecting graph elements (GE). Graph elements can be decomposed into a sequence of UGenIn objects. Graph elements are ordinary UGens, UGen proxies, Control proxies, Constants, and collections of UGen inputs which result from multichannel expansion (UGenInSeq).

  16. object GEOps

    Permalink
  17. object GraphFunction

    Permalink
  18. object Group extends Serializable

    Permalink
  19. object Lazy

    Permalink
  20. object MaybeRate

    Permalink
  21. object Node

    Permalink

    A representation for a node on the server's tree.

    A representation for a node on the server's tree. A Node is either a Synth or a Group.

    Note that if the node is a group, all messages send to the node which are not specific to a Synth or Group, i.e. all messages found in this class, will affect all child nodes of the group. For example, if release() is called on a Group, the underlying setMsg is propagated to all Synths in the tree whose root is this group.

  22. object NodeManager

    Permalink
  23. object Ops

    Permalink

    Importing the contents of this object adds imperative (side-effect) functions to resources such as synths, buses, buffers.

    Importing the contents of this object adds imperative (side-effect) functions to resources such as synths, buses, buffers. In general these reflect the OSC messages defined for each object, and send them straight to the server. For example, a Synth has function newMsg which returns an OSC message to instantiate the synth of the server. After importing Ops, you will be able to directly launch a synth using SynthDef.play or Synth.play. You will be able to directly allocate and read buffers, and so forth.

    The reason why these functions are separated from the rest of the API is to allow other frameworks such as SoundProcesses to avoid side-effects which they handle differently (e.g., using STM).

  24. object Rate

    Permalink
  25. object RichNumber

    Permalink
  26. object Server

    Permalink
  27. object ServerConnection

    Permalink
  28. object Synth extends Serializable

    Permalink
  29. object SynthDef extends Serializable

    Permalink
  30. object SynthGraph extends Serializable

    Permalink
  31. object UGen

    Permalink
  32. object UGenGraph extends Serializable

    Permalink
  33. object UGenInLike

    Permalink
  34. object UGenSource

    Permalink
  35. object UGenSpec extends Serializable

    Permalink
  36. object UndefinedRate extends MaybeRate with Product with Serializable

    Permalink

    An undefined rate signifies that a rate is either unknown or will be implicitly resolved.

  37. object addAfter extends AddAction with Product with Serializable

    Permalink

    An AddAction with id 3, indicating that a node should be added to the same group as the target node, right after it.

  38. object addBefore extends AddAction with Product with Serializable

    Permalink

    An AddAction with id 2, indicating that a node should be added to the same group as the target node, right before it.

  39. object addReplace extends AddAction with Product with Serializable

    Permalink

    An AddAction with id 4, indicating that a node should replace an existing node, that is take the target node's exact position in the tree.

  40. object addToHead extends AddAction with Product with Serializable

    Permalink

    An AddAction with id 0, indicating that a node should be add to the head of of a target group.

  41. object addToTail extends AddAction with Product with Serializable

    Permalink

    An AddAction with id 1, indicating that a node should be add to the tail of of a target group.

  42. object audio extends Rate with Product with Serializable

    Permalink

    Audio rated calculation (id 1) means that values are calculated at the audio sampling rate.

    Audio rated calculation (id 1) means that values are calculated at the audio sampling rate. For example, if the server and sound hardware run at 44.1 kHz, then 44100 samples are calculated per second. On the server, audio rate calculation is performed in chunks, depending on the block size setting.

  43. object control extends Rate with Product with Serializable

    Permalink

    Control rated calculation (id 1) means that one value is calculated per block.

    Control rated calculation (id 1) means that one value is calculated per block. With a default block size of 64, for every 64 audio samples one control value is calculated. Thus, if the sampling rate is 44.1 kHz, the control rate would be 44100/64 = approx. 689 per second.

  44. object demand extends Rate with Product with Serializable

    Permalink

    Demand rated calculation (id 1) means that the UGen is queried by trigger through a special UGen such as Demand.

  45. object doNothing extends DoneAction with Product with Serializable

    Permalink

    A DoneAction with id 0, signifying that nothing should be done in particular when the UGen is finished.

  46. implicit def doubleGEWrapper(d: Double): RichDouble

    Permalink
  47. implicit def doubleNumberWrapper(d: Double): numbers.RichDouble

    Permalink
  48. implicit def floatGEWrapper(f: Float): RichFloat

    Permalink
  49. implicit def floatNumberWrapper(f: Float): numbers.RichFloat

    Permalink
  50. object freeAllInGroup extends DoneAction with Product with Serializable

    Permalink

    A DoneAction with id 13, freeing the enclosing synth along with all other nodes in the group when the UGen is finished (i.e.

    A DoneAction with id 13, freeing the enclosing synth along with all other nodes in the group when the UGen is finished (i.e. does a freeAll on the group)

  51. object freeGroup extends DoneAction with Product with Serializable

    Permalink

    A DoneAction with id 14, freeing the enclosing group when the UGen is finished, and hence also frees this synth along with all other nodes in the group.

  52. object freeSelf extends DoneAction with Product with Serializable

    Permalink

    A DoneAction with id 2, freeing the enclosing synth when the UGen is finished.

  53. object freeSelfPausePred extends DoneAction with Product with Serializable

    Permalink

    A DoneAction with id 9, freeing the enclosing synth and pauses the predecessor node when the UGen is finished.

  54. object freeSelfPauseSucc extends DoneAction with Product with Serializable

    Permalink

    A DoneAction with id 10, freeing the enclosing synth and pauses the successor node when the UGen is finished.

  55. object freeSelfPred extends DoneAction with Product with Serializable

    Permalink

    A DoneAction with id 3, freeing the enclosing synth as well as the predecessor node when the UGen is finished.

  56. object freeSelfPredAll extends DoneAction with Product with Serializable

    Permalink

    A DoneAction with id 5, freeing the enclosing synth when the UGen is finished.

    A DoneAction with id 5, freeing the enclosing synth when the UGen is finished.  If the predecessor node is a group, calls freeAll on that group. If the predecssor node is a synth, frees that synth.

  57. object freeSelfPredDeep extends DoneAction with Product with Serializable

    Permalink

    A DoneAction with id 11, freeing the enclosing synth when the UGen is finished.

    A DoneAction with id 11, freeing the enclosing synth when the UGen is finished. If the predecessor node is a group, calls deepFree on that group. If the predecessor node is a synth, frees that synth.

  58. object freeSelfSucc extends DoneAction with Product with Serializable

    Permalink

    A DoneAction with id 4, freeing the enclosing synth as well as the successor node when the UGen is finished.

  59. object freeSelfSuccAll extends DoneAction with Product with Serializable

    Permalink

    A DoneAction with id 6, freeing the enclosing synth when the UGen is finished.

    A DoneAction with id 6, freeing the enclosing synth when the UGen is finished.  If the successor node is a group, calls freeAll on  that group. If the successor node is a synth, frees that synth.

  60. object freeSelfSuccDeep extends DoneAction with Product with Serializable

    Permalink

    A DoneAction with id 12, freeing the enclosing synth when the UGen is finished.

    A DoneAction with id 12, freeing the enclosing synth when the UGen is finished.  If the successor node is a group, calls deepFree on that group. If the successor node is a synth,  frees that synth.

  61. object freeSelfToHead extends DoneAction with Product with Serializable

    Permalink

    A DoneAction with id 7, freeing the enclosing synth and all preceding nodes in its group when the UGen is finished.

  62. object freeSelfToTail extends DoneAction with Product with Serializable

    Permalink

    A DoneAction with id 8, freeing the enclosing synth and all succeeding nodes  in its group when the UGen is finished.

  63. implicit def geOps(g: GE): GEOps

    Permalink

    Provides operators for graph elements, such as .abs, .linlin or .poll.

  64. final val inf: Float(Infinity)

    Permalink

    Positive Float infinity.

    Positive Float infinity. Useful for sequence based demand UGens. -inf gives you negative infinity.

  65. implicit def intGEWrapper(i: Int): RichInt

    Permalink
  66. implicit def intNumberWrapper(i: Int): numbers.RichInt

    Permalink
  67. package io

    Permalink
  68. package message

    Permalink
  69. object pauseSelf extends DoneAction with Product with Serializable

    Permalink

    A DoneAction with id 1, pausing the enclosing synth when the UGen is finished.

  70. package proc

    Permalink
  71. object scalar extends Rate with Product with Serializable

    Permalink

    Scalar rated calculation (id 0) means that a value is only calculated once when a Synth is initialized.

  72. package ugen

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped