Safe Haskell | None |
---|---|
Language | Haskell98 |
Extensions |
|
Vivid.UGens
Contents
Description
Unit Generators, which are the signal-generating/processing components of synths.
Most of your time reading documentation will probably be in this module
Most of these take named arguments with types like In
, Freq
, etc.
This just means you construct them with the same data constructor.
The data constructor is the same as its type (In
and In
, etc.).
So e.g. to make a lowpass filter which filters whitenoise at 440hz, you'd write:
lpf (In whiteNoise) (Freq 440)
This is far from all the ones in SC, so I've exposed the internals so you can make your own when you want. Some exports may disappear in future versions.
- lfTri :: Freq -> SDState Signal
- lfSaw :: Freq -> SDState Signal
- sinOsc :: Freq -> SDState Signal
- fSinOsc :: Freq -> SDState Signal
- whiteNoise :: SDState Signal
- pinkNoise :: SDState Signal
- brownNoise :: SDState Signal
- xLine :: Start -> End -> Dur -> DoneAction -> SDState Signal
- line :: Start -> End -> Dur -> DoneAction -> SDState Signal
- soundIn0 :: SDState Signal
- mouseX :: MinVal -> MaxVal -> SDState Signal
- mouseY :: MinVal -> MaxVal -> SDState Signal
- bpf :: In -> Freq -> Rq -> SDState Signal
- lpf :: In -> Freq -> SDState Signal
- hpf :: In -> Freq -> SDState Signal
- clip :: In -> Hi -> SDState Signal
- playBuf1 :: Buf -> SDState Signal
- recordBuf1 :: In -> Buf -> SDState Signal
- localBuf :: NumFrames -> NumChans -> SDState Signal
- fft :: Buf -> In -> SDState Signal
- ifft :: Buf -> SDState Signal
- pv_binScramble :: Buf -> Wipe -> Width -> Trigger -> SDState Signal
- pv_randComb :: Buf -> Wipe -> Trigger -> SDState Signal
- (~*) :: (ToSigM sig0, ToSigM sig1) => sig0 -> sig1 -> SDState Signal
- (~+) :: (ToSigM i0, ToSigM i1) => i0 -> i1 -> SDState Signal
- (~/) :: (ToSigM i0, ToSigM i1) => i0 -> i1 -> SDState Signal
- (~-) :: (ToSigM i0, ToSigM i1) => i0 -> i1 -> SDState Signal
- (~>) :: (ToSigM i0, ToSigM i1) => i0 -> i1 -> SDState Signal
- midiCPS :: ToSigM i => i -> SDState Signal
- cpsMIDI :: ToSigM i => i -> SDState Signal
- abs' :: ToSigM i => i -> SDState Signal
- neg :: ToSigM i => i -> SDState Signal
- binaryOp :: (ToSigM s0, ToSigM s1) => BinaryOp -> s0 -> s1 -> SDState Signal
- biOp :: (ToSigM s0, ToSigM s1) => BinaryOp -> s0 -> s1 -> SDState Signal
- unaryOp :: ToSigM sig => UnaryOp -> sig -> SDState Signal
- uOp :: ToSigM sig => UnaryOp -> sig -> SDState Signal
- varSaw :: Freq -> Width -> SDState Signal
- syncSaw :: SyncFreq -> SawFreq -> SDState Signal
- impulse :: Freq -> SDState Signal
- pan2 :: In -> Pos -> SDState [Signal]
- out :: ToSigM i => Float -> [i] -> SDState [Signal]
- lfPar :: Freq -> SDState Signal
- lfCub :: Freq -> SDState Signal
- lfPulse :: Freq -> Width -> SDState Signal
- mix :: ToSigM s => [s] -> SDState Signal
- freeVerb :: In -> Mix -> Room -> Damp -> SDState Signal
- pitchShift :: In -> Ratio -> SDState Signal
- lag :: In -> Secs -> SDState Signal
- module Vivid.UGens.Args
Generators
Generate signals, which can then be processed
Audio or control rate
These can be used as direct sound sources or as control parameters
lfTri :: Freq -> SDState Signal Source
"A non-band-limited triangle oscillator. Output ranges from -1 to +1."
lfSaw :: Freq -> SDState Signal Source
"A non-band-limited sawtooth oscillator. Output ranges from -1 to +1."
whiteNoise :: SDState Signal Source
"Generates noise whose spectrum has equal power at all frequencies."
pinkNoise :: SDState Signal Source
"Generates noise whose spectrum falls off in power by 3 dB per octave. This gives equal power over the span of each octave. This version gives 8 octaves of pink noise."
brownNoise :: SDState Signal Source
"Generates noise whose spectrum falls off in power by 6 dB per octave."
Control rate
These wouldn't be useful as direct sound sources, but instead as parameters to other UGens
xLine :: Start -> End -> Dur -> DoneAction -> SDState Signal Source
"Generates an exponential curve from the start value to the end value. Both the start and end values must be non-zero and have the same sign."
Defaults to KR
line :: Start -> End -> Dur -> DoneAction -> SDState Signal Source
"Generates a line from the start value to the end value."
Defaults to KR
User input
Generators which get signals from user input
Audio rate
Control rate
Filters
Filter signals
clip :: In -> Hi -> SDState Signal Source
Unlike in SuperCollider, you don't specify a "lo" parameter -- "lo" is always negative "hi"
Buffers
FFT
Stuff for Fast Fourier Transforms. Very incomplete atm.
Signal math
Add, multiply, etc.
Operators
Mnemonic: the ~ looks like a sound wave
Functions
midiCPS :: ToSigM i => i -> SDState Signal Source
Convert from a midi note number (0-127, each representing a musical half step) to a frequency in hz (cycles per second)
abs' :: ToSigM i => i -> SDState Signal Source
The prime is to not conflict with "abs" in the prelude. May just use "uOp Abs" in the future
biOp :: (ToSigM s0, ToSigM s1) => BinaryOp -> s0 -> s1 -> SDState Signal Source
Alias of binaryOp
. Shorter, fer livecodin
Uncategorized
Haven't organized yet
mix :: ToSigM s => [s] -> SDState Signal Source
Mixes down a list of audio rate inputs to one. The list can't be empty.
This is more efficient than e.g. foldl1 (~+)
module Vivid.UGens.Args