hsc3-0.12: Haskell SuperCollider

Safe HaskellSafe-Inferred

Sound.SC3.UGen.Math

Description

Non-standard mathematical classes and class instances.

Synopsis

Documentation

class EqE a whereSource

Variant on Eq class, result is of the same type as the values compared.

Methods

(==*) :: a -> a -> aSource

(/=*) :: a -> a -> aSource

Instances

class OrdE a whereSource

Variant on Ord class, result is of the same type as the values compared.

Methods

(<*) :: a -> a -> aSource

(<=*) :: a -> a -> aSource

(>*) :: a -> a -> aSource

(>=*) :: a -> a -> aSource

Instances

class RealFracE a whereSource

Variant of RealFrac with non Integral results.

Methods

properFractionE :: a -> (a, a)Source

truncateE :: a -> aSource

roundE :: a -> aSource

ceilingE :: a -> aSource

floorE :: a -> aSource

truncatef :: RealFrac a => a -> aSource

Variant of truncate.

roundf :: RealFrac a => a -> aSource

Variant of round.

ceilingf :: RealFrac a => a -> aSource

Variant of ceiling.

floorf :: RealFrac a => a -> aSource

Variant of floor.

roundTo_ :: Double -> Double -> DoubleSource

Variant of SC3 roundTo function.

midiCPS' :: Floating a => a -> aSource

Floating form of midiCPS.

class (Floating a, Ord a) => UnaryOp a whereSource

Unary operator class.

 map (floor . (* 1e4) . dbAmp) [-90,-60,-30,0] == [0,10,316,10000]

Methods

ampDb :: a -> aSource

asFloat :: a -> aSource

asInt :: a -> aSource

cpsMIDI :: a -> aSource

cpsOct :: a -> aSource

cubed :: a -> aSource

dbAmp :: a -> aSource

distort :: a -> aSource

frac :: a -> aSource

isNil :: a -> aSource

log10 :: a -> aSource

log2 :: a -> aSource

midiCPS :: a -> aSource

midiRatio :: a -> aSource

notE :: a -> aSource

notNil :: a -> aSource

octCPS :: a -> aSource

ramp_ :: a -> aSource

ratioMIDI :: a -> aSource

softClip :: a -> aSource

squared :: a -> aSource

class (Floating a, Ord a) => BinaryOp a whereSource

Binary operator class.

Methods

absDif :: a -> a -> aSource

amClip :: a -> a -> aSource

atan2E :: a -> a -> aSource

clip2 :: a -> a -> aSource

difSqr :: a -> a -> aSource

excess :: a -> a -> aSource

exprandRange :: a -> a -> aSource

fill :: a -> a -> aSource

firstArg :: a -> a -> aSource

fold2 :: a -> a -> aSource

gcdE :: a -> a -> aSource

hypot :: a -> a -> aSource

hypotx :: a -> a -> aSource

iDiv :: a -> a -> aSource

lcmE :: a -> a -> aSource

modE :: a -> a -> aSource

randRange :: a -> a -> aSource

ring1 :: a -> a -> aSource

ring2 :: a -> a -> aSource

ring3 :: a -> a -> aSource

ring4 :: a -> a -> aSource

roundUp :: a -> a -> aSource

scaleNeg :: a -> a -> aSource

sqrDif :: a -> a -> aSource

sqrSum :: a -> a -> aSource

sumSqr :: a -> a -> aSource

thresh :: a -> a -> aSource

trunc :: a -> a -> aSource

wrap2 :: a -> a -> aSource

fmod :: Double -> Double -> DoubleSource

The SC3 % operator is libc fmod function.

 1.5 % 1.2 // ~= 0.3
 -1.5 % 1.2 // ~= 0.9
 1.5 % -1.2 // ~= -0.9
 -1.5 % -1.2 // ~= -0.3
 1.5 `fmod` 1.2 -- ~= 0.3
 (-1.5) `fmod` 1.2 -- ~= 0.9
 1.5 `fmod` (-1.2) -- ~= -0.9
 (-1.5) `fmod` (-1.2) -- ~= -0.3
  1. 2 % 1.5 ~= 1.2 -1.2 % 1.5 ~= 0.3 1.2 % -1.5 ~= -0.3 -1.2 % -1.5 ~= -1.2
 1.2 `fmod` 1.5 -- ~= 1.2
 (-1.2) `fmod` 1.5 -- ~= 0.3
 1.2 `fmod` (-1.5) -- ~= -0.3
 (-1.2) `fmod` (-1.5) -- ~= -1.2

wrap' :: Double -> Double -> Double -> DoubleSource

Wrap k to within range (i,j), ie. AbstractFunction.wrap.

 map (wrap' 5 10) [3..12] == [8,9,5,6,7,8,9,10,6,7]

genericWrap :: (Ord a, Num a) => a -> a -> a -> aSource

Generic variant of wrap'.

 map (genericWrap (5::Integer) 10) [3..12] == [8,9,5,6,7,8,9,10,6,7]

wrap_ :: Double -> Double -> Double -> DoubleSource

Variant of wrap' with SC3 argument ordering.

 map (\n -> wrap_ n 5 10) [3..12] == map (wrap' 5 10) [3..12]

foldToRange :: (Ord a, Num a) => a -> a -> a -> aSource

Fold k to within range (i,j), ie. AbstractFunction.fold

 map (foldToRange 5 10) [3..12] == [7,6,5,6,7,8,9,10,9,8]

fold_ :: (Ord a, Num a) => a -> a -> a -> aSource

Variant of foldToRange with SC3 argument ordering.

clip' :: Ord a => a -> a -> a -> aSource

Clip k to within range (i,j),

 map (clip' 5 10) [3..12] == [5,5,5,6,7,8,9,10,10,10]

clip_ :: Ord a => a -> a -> a -> aSource

Variant of clip' with SC3 argument ordering.