# Functions
## Color
### .contrast(`amount`)
* amount :: float (default 1.6)
Larger `amount` value makes higher contrast.
### .color( `r`, `g`, `b` )
* r :: float
* g :: float
* b :: float
Colorize texture.
### .colorama(`amount`)
* amount :: float (default 0.005)
Shift HSV values.
### .invert(`amount`)
* amount :: float (default 1.0)
Invert color.
### .luma( `threshold`, `tolerance` )
* threshold :: float (default 0.5)
* tolerance :: float (default 0.1)
### .thresh( `threshold`, `tolerance` )
* threshold :: float (default 0.5)
* tolerance :: float (default 0.04)
-----------
## Combine
### .add( `texture`, `amount` )
* texture
* color :: vec4
* src
* shape
* amount :: float (default 0.5)
Add textures.
### .blend( `texture`, `amount` )
* texture
* color :: vec4
* src
* shape
* amount :: float (default 0.5)
Blend textures.
### .diff( `texture` )
* texture
* color :: vec4
* src
* shape
Return difference of textures.
### .layer()
Overlay texture based on alpha value.
### .mult( `texture`, `amount` )
* texture
* color :: vec4
* src
* shape
* amount :: float (default 1.0)
Multiply images and blend with the texture by `amount`.
-----------------
## CombineCoord
### .modulate( `texture`, `amount` )
* texture
* color :: vec4
* src
* shape
* amount :: float (default 0.1)
Modulate texture. More about modulation at:
### .modulateHue( `color`, `amount` )
* texture
* color :: vec4
* src
* shape
* amount :: float (default 1.0)
Changes coordinates based on hue of second input. Based on:
### .modulateKaleid( `nSides` )
* texture
* color :: vec4
* src
* shape
* nSides :: float (default 4.0)
### .modulatePixelate( `multiple`, `offset` )
* texture
* color :: vec4
* src
* shape
* multiple :: float (default 10.0)
* offset :: float (default 3.0)
### .modulateRotate( `multiple`, `offset` )
* texture
* color :: vec4
* src
* shape
* multiple :: float (default 1.0)
* offset :: float (default 0.0)
### .modulateScale( `multiple`, `offset` )
* texture
* color :: vec4
* src
* shape
* multiple :: float (default 1.0)
* offset :: float (default 1.0)
### .modulateScrollX( `multiple`, `scrollX`, `speed` )
* texture
* color :: vec4
* src
* shape
* scrollX :: float (default 0.5)
* speed :: float (default 0.0)
### .modulateScrollY( `multiple`, `scrollY`, `speed` )
* texture
* color :: vec4
* src
* shape
* scrollY :: float (default 0.5)
* speed :: float (default 0.0)
-----------------
## Coord
### .kaleid( `nSides`)
* nSides :: float (default 4.0)
Kaleidoscope effect with `nSides` repetition.
### .rotate( `angle`, `speed` )
* angle :: float (default 10.0)
* speed :: float (default 0.0)
Rotate texture.
### .scale( `size`, `xMult`, `yMult` )
* size :: float
* xMult :: float (default 1.0)
* yMult :: float (default 1.0)
Scale texture.
### .pixelate( `x`, `y` )
* pixelX :: float (default 20.0)
* pixelY :: float (default 20.0)
Pixelate texture with `pixelX` segments and `pixelY` segments.
### .scrollX( `scrollX`, `speed` )
* scrollX :: float (default 0.5)
* speed :: float (default 0.0)
### .scrollY( `scrollY`, `speed` )
* scrollY :: float (default 0.5)
* speed :: float (default 0.0)
-------------------------
## Src
### osc( `frequency`, `sync`, `offset` )
* frequency :: float (default 60.0)
* sync :: float (default 0.1)
* offset :: float (default 0.0)
### render( `output buffer`)
* default: `o0`
### shape( `sides`, `radius`, `smoothing`)
* sides :: int (default 3.0)
* radius :: float (default 60.0)
* smoothing :: float (default 0.01)
### solid( `r`, `g`, `b`, `a`)
* r :: float (default 0.0)
* g :: float (default 0.0)
* b :: float (default 0.0)
* a :: float (default 1.0)
### src( `input` )
* input :: examples: `o0`, `s1`
### .noise( `scale`, `offset` )
* scale :: int (default 10.0)
* offset :: float (default 0.1)
Generate Perlin noise.
### .out( `output buffer` )
* output buffer
* osc: `o0`, `o1`, `o2`, `o3`
* src: `s0`, `s1`, `s2`, `s3`
-------------------
## Animate
### seq( `array[]`, `speed` )
#### note: should be defined at top of file
```
seq = (arr = [], speed = 1) => ({time}) => (
arr[ Math.floor( time * speed % (arr.length) ) ]
)
```
#### example
```
osc(
seq( [80, 100, 200, 50], 1 )
)
.out(o0)
```
-------------------
## Audio
### .hide()
### .setBins( `int` )
### .setCutoff( `float` )
### .setMax( `float` )
### .show()
-------------------
## Util
### random()
No Args
### _noise()
No Args
### luminance()
No Args
### rgbToHsv()
No Args
### hsvToRgb()
No Args