diff --git a/docs/funcs.md b/docs/funcs.md
index a9ec23d..7c079ed 100644
--- a/docs/funcs.md
+++ b/docs/funcs.md
@@ -25,7 +25,7 @@
- [show](#show)
- [Color](#color)
- [contrast](#contrast)
- - [color](#color)
+ - [color `vec4`](#color-vec4)
- [colorama](#colorama)
- [invert](#invert)
- [luma](#luma)
@@ -38,6 +38,8 @@
- [scrollX](#scrollX)
- [scrollY](#scrollY)
- [Global variables](#global-variables)
+ - [mouse](#mouse)
+ - [time](#time)
- [Modulators](#modulators)
- [Operators](#operators)
- [Sources](#sources)
@@ -95,7 +97,7 @@ Functions for manipulating audio signals.
Functions for manipulating color.
- [contrast](#contrast)
-- [color](#color)
+- [color `vec4`](#color-vec4)
- [colorama](#colorama)
- [invert](#invert)
- [luma](#luma)
@@ -109,7 +111,7 @@ Functions for manipulating color.
Larger `amount` value makes higher contrast.
-### color
+### color `vec4`
`.color( r, g, b )`
@@ -214,3 +216,145 @@ Scale texture.
---
+## Global variables
+
+Useful variables that are defined globally, and can be used within functions as a parameter.
+
+- [mouse](#mouse)
+- [time](#time)
+
+### mouse
+
+`mouse`
+
+* `.x` :: x position of mouse
+* `.y` :: y position of mouse
+
+#### Example
+
+Control the oscillator frequency with the mouse position:
+
+```javascript
+osc(() => mouse.x).out(o0)
+```
+
+### time
+
+`time`
+
+* `time` :: the current time
+
+#### Example
+
+Control the oscillator using a sine wave based on the current time:
+
+```javascript
+osc( ({time}) => Math.sin(time) )
+.out(o0)
+```
+
+---
+
+## Modulators
+
+Functions for describing modulations of sources.
+
+- [modulate](#modulate)
+- [modulateHue](#modulateHue)
+- [modulateKaleid](#modulateKaleid)
+- [modulatePixelate](#modulatePixelate)
+- [modulateRotate](#modulateRotate)
+- [modulateScale](#modulateScale)
+- [modulateScrollX](#modulateScrollX)
+- [modulateScrollY](#modulateScrollY)
+
+### modulate
+
+`.modulate( texture, amount )`
+
+* `texture`
+ * `color` :: `vec4`, see [color `vec4`](#color-vec4)
+ * `src` :: see [Sources](#sources)
+ * `shape` :: see [Sources](#sources)
+* `amount` :: float (default `0.1`)
+
+Modulate texture. More about modulation at:
+
+### modulateHue
+
+`.modulateHue( `color`, `amount` )`
+
+* texture
+ * color :: vec4
+ * src
+ * shape
+* amount :: float (default 1.0)
+
+Changes coordinates based on hue of second input. Based on:
+
+### modulateKaleid
+
+`.modulateKaleid( `nSides` )`
+
+* texture
+ * color :: vec4
+ * src
+ * shape
+* nSides :: float (default 4.0)
+
+### modulatePixelate
+
+`.modulatePixelate( `multiple`, `offset` )`
+
+* texture
+ * color :: vec4
+ * src
+ * shape
+* multiple :: float (default 10.0)
+* offset :: float (default 3.0)
+
+### modulateRotate
+
+`.modulateRotate( `multiple`, `offset` )`
+
+* texture
+ * color :: vec4
+ * src
+ * shape
+* multiple :: float (default 1.0)
+* offset :: float (default 0.0)
+
+### modulateScale
+
+`.modulateScale( `multiple`, `offset` )`
+
+* texture
+ * color :: vec4
+ * src
+ * shape
+* multiple :: float (default 1.0)
+* offset :: float (default 1.0)
+
+### modulateScrollX
+
+`.modulateScrollX( `multiple`, `scrollX`, `speed` )`
+
+* texture
+ * color :: vec4
+ * src
+ * shape
+* scrollX :: float (default 0.5)
+* speed :: float (default 0.0)
+
+### modulateScrollY
+
+`.modulateScrollY( `multiple`, `scrollY`, `speed` )`
+
+* texture
+ * color :: vec4
+ * src
+ * shape
+* scrollY :: float (default 0.5)
+* speed :: float (default 0.0)
+
+---
\ No newline at end of file
diff --git a/docs/funcs_color.md b/docs/funcs_color.md
index 60bee46..48d526f 100644
--- a/docs/funcs_color.md
+++ b/docs/funcs_color.md
@@ -3,7 +3,7 @@
Functions for manipulating color.
- [contrast](#contrast)
-- [color](#color)
+- [color `vec4`](#color-vec4)
- [colorama](#colorama)
- [invert](#invert)
- [luma](#luma)
@@ -17,7 +17,7 @@ Functions for manipulating color.
Larger `amount` value makes higher contrast.
-### color
+### color `vec4`
`.color( r, g, b )`
diff --git a/docs/funcs_global-variables.md b/docs/funcs_global-variables.md
index 4c5807f..b0e56ea 100644
--- a/docs/funcs_global-variables.md
+++ b/docs/funcs_global-variables.md
@@ -1,29 +1,36 @@
-# Global variables
+## Global variables
Useful variables that are defined globally, and can be used within functions as a parameter.
- [mouse](#mouse)
- [time](#time)
----
-
### mouse
-* .x :: x position of mouse
-* .y :: y position of mouse
-Example:
-- Control the oscillator frequency with the mouse position:
-```
+`mouse`
+
+* `.x` :: x position of mouse
+* `.y` :: y position of mouse
+
+#### Example
+
+Control the oscillator frequency with the mouse position:
+
+```javascript
osc(() => mouse.x).out(o0)
```
### time
-Example:
-- Control the oscillator using a sine wave based on the current time:
-```
-osc(
- ({time}) => Math.sin(time)
-)
+`time`
+
+* `time` :: the current time
+
+#### Example
+
+Control the oscillator using a sine wave based on the current time:
+
+```javascript
+osc( ({time}) => Math.sin(time) )
.out(o0)
```
diff --git a/docs/funcs_modulators.md b/docs/funcs_modulators.md
index cb303f2..803a327 100644
--- a/docs/funcs_modulators.md
+++ b/docs/funcs_modulators.md
@@ -1,28 +1,32 @@
-# Modulators
+## Modulators
Functions for describing modulations of sources.
-- [.modulate( `texture`, `amount` )](#.modulate( `texture`, `amount` ))
-- [.modulateHue( `color`, `amount` )](#.modulateHue( `color`, `amount` ))
-- [.modulateKaleid( `nSides` )](#.modulateKaleid( `nSides` ))
-- [.modulatePixelate( `multiple`, `offset` )](#.modulatePixelate( `multiple`, `offset` ))
-- [.modulateRotate( `multiple`, `offset` )](#.modulateRotate( `multiple`, `offset` ))
-- [.modulateScale( `multiple`, `offset` )](#.modulateScale( `multiple`, `offset` ))
-- [.modulateScrollX( `multiple`, `scrollX`, `speed` )](#.modulateScrollX( `multiple`, `scrollX`, `speed` ))
-- [.modulateScrollY( `multiple`, `scrollY`, `speed` )](#.modulateScrollY( `multiple`, `scrollY`, `speed` ))
+- [modulate](#modulate)
+- [modulateHue](#modulateHue)
+- [modulateKaleid](#modulateKaleid)
+- [modulatePixelate](#modulatePixelate)
+- [modulateRotate](#modulateRotate)
+- [modulateScale](#modulateScale)
+- [modulateScrollX](#modulateScrollX)
+- [modulateScrollY](#modulateScrollY)
----
+### modulate
-### .modulate( `texture`, `amount` )
-* texture
- * color :: vec4
- * src
- * shape
-* amount :: float (default 0.1)
+`.modulate( texture, amount )`
+
+* `texture`
+ * `color` :: `vec4`, see [color `vec4`](#color-vec4)
+ * `src` :: see [Sources](#sources)
+ * `shape` :: see [Sources](#sources)
+* `amount` :: float (default `0.1`)
Modulate texture. More about modulation at:
-### .modulateHue( `color`, `amount` )
+### modulateHue
+
+`.modulateHue( `color`, `amount` )`
+
* texture
* color :: vec4
* src
@@ -31,14 +35,20 @@ Modulate texture. More about modulation at:
-### .modulateKaleid( `nSides` )
+### modulateKaleid
+
+`.modulateKaleid( `nSides` )`
+
* texture
* color :: vec4
* src
* shape
* nSides :: float (default 4.0)
-### .modulatePixelate( `multiple`, `offset` )
+### modulatePixelate
+
+`.modulatePixelate( `multiple`, `offset` )`
+
* texture
* color :: vec4
* src
@@ -46,7 +56,10 @@ Changes coordinates based on hue of second input. Based on: