From ebb1bbc9668be587414b2eee84ce21b822a62bd9 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Fri, 6 Jan 2023 21:14:19 +0100 Subject: [PATCH] improve effects doc --- packages/core/controls.mjs | 43 +++++++++++++++++----- website/src/pages/learn/effects.mdx | 57 ++++++++++++++++++++++------- website/src/pages/learn/samples.mdx | 8 +++- 3 files changed, 84 insertions(+), 24 deletions(-) diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index 22e30f33..8682f0e1 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -269,7 +269,7 @@ const generic_params = [ * @name cut * @param {number | Pattern} group cut group number * @example - * s("bd sax").cut(1).osc() + * s("rd*4").cut(1) * */ [ @@ -341,17 +341,36 @@ const generic_params = [ ['f', 'djf', 'DJ filter, below 0.5 is low pass filter, above is high pass filter.'], // ['f', 'cutoffegint', ''], // TODO: does not seem to work - /* + /** * Sets the level of the delay signal. * * @name delay * @param {number | Pattern} level between 0 and 1 * @example - * s("bd").delay("<0 .5 .75 1>").osc() + * s("bd").delay("<0 .25 .5 1>") * */ ['f', 'delay', 'a pattern of numbers from 0 to 1. Sets the level of the delay signal.'], + /** + * Sets the level of the signal that is fed back into the delay. + * Caution: Values >= 1 will result in a signal that gets louder and louder! Don't do it + * + * @name delayfeedback + * @param {number | Pattern} feedback between 0 and 1 + * @example + * s("bd").delay(.25).delayfeedback("<.25 .5 .75 1>").slow(2) + * + */ ['f', 'delayfeedback', 'a pattern of numbers from 0 to 1. Sets the amount of delay feedback.'], + /** + * Sets the time of the delay effect. + * + * @name delaytime + * @param {number | Pattern} seconds between 0 and Infinity + * @example + * s("bd").delay(.25).delaytime("<.125 .25 .5 1>").slow(2) + * + */ ['f', 'delaytime', 'a pattern of numbers from 0 to 1. Sets the length of the delay.'], /* // TODO: test * Specifies whether delaytime is calculated relative to cps. @@ -504,11 +523,15 @@ const generic_params = [ // ['f', 'ophatdecay', ''], // TODO: example /** - * a pattern of numbers. An `orbit` is a global parameter context for patterns. Patterns with the same orbit will share hardware output bus offset and global effects, e.g. reverb and delay. The maximum number of orbits is specified in the superdirt startup, numbers higher than maximum will wrap around. + * An `orbit` is a global parameter context for patterns. Patterns with the same orbit will share the same global effects. * * @name orbit * @param {number | Pattern} number - * + * @example + * stack( + * s("hh*3").delay(.5).delaytime(.25).orbit(1), + * s("~ sd").delay(.5).delaytime(.125).orbit(2) + * ) */ [ 'i', @@ -590,7 +613,7 @@ const generic_params = [ * @name room * @param {number | Pattern} level between 0 and 1 * @example - * s("bd sd").room("<0 .2 .4 .6 .8 1>").osc() + * s("bd sd").room("<0 .2 .4 .6 .8 1>") * */ ['f', 'room', 'a pattern of numbers from 0 to 1. Sets the level of reverb.'], @@ -598,9 +621,9 @@ const generic_params = [ * Sets the room size of the reverb, see {@link room}. * * @name size - * @param {number | Pattern} size between 0 and 1 + * @param {number | Pattern} size between 0 and 10 * @example - * s("bd sd").room(.8).size("<0 .2 .4 .6 .8 1>").osc() + * s("bd sd").room(.8).size("<0 1 2 4 8>") * */ // TODO: find out why : @@ -640,9 +663,9 @@ const generic_params = [ * @name speed * @param {number | Pattern} speed -inf to inf, negative numbers play the sample backwards. * @example - * s("bd").speed("<1 2 4 1 -2 -4>").osc() + * s("bd").speed("<1 2 4 1 -2 -4>") * @example - * speed("1 1.5*2 [2 1.1]").s("sax").cut(1).osc() + * speed("1 1.5*2 [2 1.1]").s("piano").clip(1) * */ [ diff --git a/website/src/pages/learn/effects.mdx b/website/src/pages/learn/effects.mdx index a73e140a..5310a50a 100644 --- a/website/src/pages/learn/effects.mdx +++ b/website/src/pages/learn/effects.mdx @@ -12,54 +12,85 @@ import { JsDoc } from '../../docs/JsDoc'; Wether you're using a synth or a sample, you can apply any of the following built-in audio effects. As you might suspect, the effects can be chained together, and they accept a pattern string as their argument. -# bandf +## bandf -# bandq +## bandq -# coarse +## coarse -# crush +## crush -# cutoff +## cutoff -# gain +## gain -# hcutoff +## hcutoff -# hresonance +## hresonance -# pan +## pan -# resonance +## resonance -# shape +## shape -# velocity +## velocity -# vowel +## vowel + +# Global Effects + +## Local vs Global Effects + +While the above listed "local" effects will always create a separate effects chain for each event, +global effects use the same chain for all events of the same orbit: + +## orbit + + + +## delay + + + +## delaytime + + + +## delayfeedback + + + +## room + + + +## size / roomsize + + diff --git a/website/src/pages/learn/samples.mdx b/website/src/pages/learn/samples.mdx index 7804ffe8..3b5b56ae 100644 --- a/website/src/pages/learn/samples.mdx +++ b/website/src/pages/learn/samples.mdx @@ -217,6 +217,10 @@ Almost everything in Tidal can be patterned using strings! +### `cut` + + + ### `loopAt` @@ -225,4 +229,6 @@ Almost everything in Tidal can be patterned using strings! -
+### `speed` + +