diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs
index 832b09dc..3abeb504 100644
--- a/packages/core/controls.mjs
+++ b/packages/core/controls.mjs
@@ -86,6 +86,15 @@ const generic_params = [
*
*/
['gain'],
+ /**
+ * Gain applied after all effects have been processed.
+ *
+ * @name postgain
+ * @example
+ * s("bd sd,hh*4")
+ * .compressor("-20:20:10:.002:.02").postgain(1.5)
+ *
+ */
['postgain'],
/**
* Like {@link gain}, but linear.
@@ -1052,6 +1061,16 @@ const generic_params = [
*
*/
['shape'],
+ /**
+ * Dynamics Compressor. The params are `compressor("threshold:ratio:knee:attack:release")`
+ * More info [here](https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode?retiredLocale=de#instance_properties)
+ *
+ * @name compressor
+ * @example
+ * s("bd sd,hh*4")
+ * .compressor("-20:20:10:.002:.02")
+ *
+ */
[['compressor', 'compressorRatio', 'compressorKnee', 'compressorAttack', 'compressorRelease']],
['compressorKnee'],
['compressorRatio'],
diff --git a/website/src/pages/learn/effects.mdx b/website/src/pages/learn/effects.mdx
index 2ee6c44a..11b74646 100644
--- a/website/src/pages/learn/effects.mdx
+++ b/website/src/pages/learn/effects.mdx
@@ -144,6 +144,15 @@ There is one filter envelope for each filter type and thus one set of envelope f
+## compressor
+
+
+
+## postgain
+
+
+
+
# Panning
## jux