hsc3-0.17: Haskell SuperCollider

Safe HaskellSafe
LanguageHaskell98

Sound.SC3.UGen.Plain

Description

Plain notation for SuperCollider UGen graphs.

let {s = ugen "SinOsc" AR [440,0] 1
    ;m = binop "*" AR s 0.1
    ;o = ugen "Out" AR [0,m] 0}
in Sound.SC3.Server.Play.audition o >> Sound.SC3.UGen.Dot.draw o
audition (out 0 (sinOsc AR 440 0 * 0.1))
Synopsis

Documentation

mk_plain :: Rate -> String -> [UGen] -> Int -> Special -> UGenId -> UGen Source #

Variant of mkUGen.

uop :: Case_Rule -> String -> Rate -> UGen -> UGen Source #

Construct unary operator, the name can textual or symbolic.

uop CI "NEG" AR 1

binop :: Case_Rule -> String -> Rate -> UGen -> UGen -> UGen Source #

Construct binary operator, the name can textual or symbolic.

binop CI "*" AR 1 2 == binop CI "MUL" AR 1 2
binop CS "*" AR (ugen "SinOsc" AR [440,0] 1) 0.1 == sinOsc AR 440 0 * 0.1

ugen :: String -> Rate -> [UGen] -> Int -> UGen Source #

Construct deterministic UGen.

let o = ugen "SinOsc" AR [440,0] 1
o == sinOsc AR 440 0
ugen "Out" AR [0,o] 0 == out 0 (sinOsc AR 440 0)

nondet :: String -> UGenId -> Rate -> [UGen] -> Int -> UGen Source #

Construct non-deterministic UGen.

import Sound.SC3.ID
nondet "WhiteNoise" (UId (fromEnum 'a')) AR [] 1 == whiteNoise 'a' AR