From 4be798d15a1e1e70ba24c3926135dbb208cc0f38 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 22 May 2022 15:59:56 +0200 Subject: [PATCH] more doc --- doc.json | 362 ++++++++++++++++++++++++++++++------- packages/core/controls.mjs | 106 +++++++++-- 2 files changed, 383 insertions(+), 85 deletions(-) diff --git a/doc.json b/doc.json index 5040d048..cdca7f9b 100644 --- a/doc.json +++ b/doc.json @@ -164,7 +164,7 @@ "comment": "/**\n * Sets the center frequency of the band-pass filter.\n *\n * @name bandf\n * @param {number | Pattern} frequency center frequency\n * @example\n * s(\"bd sd\").bandf(\"<1000 2000 4000 8000>\").osc()\n *\n */", "meta": { "filename": "controls.mjs", - "lineno": 92, + "lineno": 97, "columnno": 2, "path": "/home/felix/projects/strudel/packages/core", "code": {} @@ -196,7 +196,7 @@ "comment": "/**\n * Sets the q-factor of the band-pass filter\n *\n * @name bandq\n * @param {number | Pattern} q q factor\n * @example\n * s(\"bd sd\").bandf(\"<1000 2000 4000 8000>\").bandq(\"<.2 .9>\").osc()\n *\n */", "meta": { "filename": "controls.mjs", - "lineno": 103, + "lineno": 108, "columnno": 2, "path": "/home/felix/projects/strudel/packages/core", "code": {} @@ -228,7 +228,7 @@ "comment": "/**\n * a pattern of numbers from 0 to 1. Skips the beginning of each sample, e.g. `0.25` to cut off the first quarter from each sample.\n *\n * @name begin\n * @param {number | Pattern} amount between 0 and 1, where 1 is the length of the sample\n * @example\n * s(\"rave\").begin(\"<0 .25 .5 .75>\").osc()\n *\n */", "meta": { "filename": "controls.mjs", - "lineno": 113, + "lineno": 118, "columnno": 2, "path": "/home/felix/projects/strudel/packages/core", "code": {} @@ -260,7 +260,7 @@ "comment": "/**\n * The same as {@link begin}, but cuts off the end off each sample.\n *\n * @name end\n * @param {number | Pattern} length 1 = whole sample, .5 = half sample, .25 = quarter sample etc..\n * @example\n * s(\"bd*2,ho*4\").end(\"<.1 .2 .5 1>\").osc()\n *\n */", "meta": { "filename": "controls.mjs", - "lineno": 127, + "lineno": 132, "columnno": 2, "path": "/home/felix/projects/strudel/packages/core", "code": {} @@ -292,7 +292,7 @@ "comment": "/**\n * a pattern of numbers from 0 to 1. Skips the beginning of each sample, e.g. `0.25` to cut off the first quarter from each sample.\n *\n * @name legato\n * @param {number | Pattern} duration between 0 and 1, where 1 is the length of the whole hap time\n * @example\n * \"c4 eb4 g4 bb4\".legato(\"<0.125 .25 .5 .75 1 2 4>\")\n *\n */", "meta": { "filename": "controls.mjs", - "lineno": 142, + "lineno": 147, "columnno": 2, "path": "/home/felix/projects/strudel/packages/core", "code": {} @@ -324,7 +324,7 @@ "comment": "/**\n * bit crusher effect.\n *\n * @name crush\n * @param {number | Pattern} depth between 1 (for drastic reduction in bit-depth) to 16 (for barely no reduction).\n * @example\n * s(\",hh*3,jvbass*2\").fast(2).crush(\"<16 8 7 6 5 4 3 2>\").osc()\n *\n */", "meta": { "filename": "controls.mjs", - "lineno": 153, + "lineno": 158, "columnno": 2, "path": "/home/felix/projects/strudel/packages/core", "code": {} @@ -356,7 +356,7 @@ "comment": "/**\n * fake-resampling for lowering the sample rate\n *\n * @name coarse\n * @param {number | Pattern} factor 1 for original 2 for half, 3 for a third and so on.\n * @example\n * s(\"xmas\").coarse(\"<1 4 8 16 32>\").osc()\n *\n */", "meta": { "filename": "controls.mjs", - "lineno": 167, + "lineno": 172, "columnno": 2, "path": "/home/felix/projects/strudel/packages/core", "code": {} @@ -388,7 +388,7 @@ "comment": "/**\n * choose the channel the pattern is sent to in superdirt\n *\n * @name channel\n * @param {number | Pattern} channel channel number\n *\n */", "meta": { "filename": "controls.mjs", - "lineno": 182, + "lineno": 187, "columnno": 2, "path": "/home/felix/projects/strudel/packages/core", "code": {} @@ -417,7 +417,7 @@ "comment": "/**\n * In the style of classic drum-machines, `cut` will stop a playing sample as soon as another samples with in same cutgroup is to be played. An example would be an open hi-hat followed by a closed one, essentially muting the open.\n *\n * @name cut\n * @param {number | Pattern} group cut group number\n * @example\n * s(\"bd sax\").cut(1).osc()\n *\n */", "meta": { "filename": "controls.mjs", - "lineno": 190, + "lineno": 195, "columnno": 2, "path": "/home/felix/projects/strudel/packages/core", "code": {} @@ -449,7 +449,7 @@ "comment": "/**\n * Applies the cutoff frequency of the low-pass filter.\n *\n * @name cutoff\n * @param {number | Pattern} frequency audible between 0 and 20000\n * @example\n * s(\"bd,hh*2,<~ sd>\").fast(2).cutoff(\"<4000 2000 1000 500 200 100>\").osc()\n *\n */", "meta": { "filename": "controls.mjs", - "lineno": 204, + "lineno": 209, "columnno": 2, "path": "/home/felix/projects/strudel/packages/core", "code": {} @@ -477,11 +477,107 @@ "___id": "T000002R000018", "___s": true }, + { + "comment": "/**\n * Applies the cutoff frequency of the high-pass filter.\n *\n * @name hcutoff\n * @param {number | Pattern} frequency audible between 0 and 20000\n * @example\n * s(\"bd,hh*2,<~ sd>\").fast(2).hcutoff(\"<4000 2000 1000 500 200 100>\").osc()\n *\n */", + "meta": { + "filename": "controls.mjs", + "lineno": 220, + "columnno": 2, + "path": "/home/felix/projects/strudel/packages/core", + "code": {} + }, + "description": "

Applies the cutoff frequency of the high-pass filter.

", + "name": "hcutoff", + "params": [ + { + "type": { + "names": [ + "number", + "Pattern" + ] + }, + "description": "

audible between 0 and 20000

", + "name": "frequency" + } + ], + "examples": [ + "s(\"bd,hh*2,<~ sd>\").fast(2).hcutoff(\"<4000 2000 1000 500 200 100>\").osc()" + ], + "longname": "hcutoff", + "kind": "member", + "scope": "global", + "___id": "T000002R000019", + "___s": true + }, + { + "comment": "/**\n * Applies the cutoff frequency of the high-pass filter.\n *\n * @name hresonance\n * @param {number | Pattern} q resonance factor between 0 and 1\n * @example\n * s(\"bd,hh*2,<~ sd>\").fast(2).hcutoff(2000).hresonance(\"<0 .2 .4 .6>\").osc()\n *\n */", + "meta": { + "filename": "controls.mjs", + "lineno": 235, + "columnno": 2, + "path": "/home/felix/projects/strudel/packages/core", + "code": {} + }, + "description": "

Applies the cutoff frequency of the high-pass filter.

", + "name": "hresonance", + "params": [ + { + "type": { + "names": [ + "number", + "Pattern" + ] + }, + "description": "

resonance factor between 0 and 1

", + "name": "q" + } + ], + "examples": [ + "s(\"bd,hh*2,<~ sd>\").fast(2).hcutoff(2000).hresonance(\"<0 .2 .4 .6>\").osc()" + ], + "longname": "hresonance", + "kind": "member", + "scope": "global", + "___id": "T000002R000020", + "___s": true + }, + { + "comment": "/**\n * Applies the cutoff frequency of the low-pass filter.\n *\n * @name resonance\n * @param {number | Pattern} q resonance factor between 0 and 1\n * @example\n * s(\"bd,hh*2,<~ sd>\").fast(2).cutoff(2000).resonance(\"<0 .2 .4 .6>\").osc()\n *\n */", + "meta": { + "filename": "controls.mjs", + "lineno": 250, + "columnno": 2, + "path": "/home/felix/projects/strudel/packages/core", + "code": {} + }, + "description": "

Applies the cutoff frequency of the low-pass filter.

", + "name": "resonance", + "params": [ + { + "type": { + "names": [ + "number", + "Pattern" + ] + }, + "description": "

resonance factor between 0 and 1

", + "name": "q" + } + ], + "examples": [ + "s(\"bd,hh*2,<~ sd>\").fast(2).cutoff(2000).resonance(\"<0 .2 .4 .6>\").osc()" + ], + "longname": "resonance", + "kind": "member", + "scope": "global", + "___id": "T000002R000021", + "___s": true + }, { "comment": "/**\n * Set detune of oscillators. Works only with some synths, see tidal doc\n *\n * @name djf\n * @param {number | Pattern} cutoff below 0.5 is low pass filter, above is high pass filter\n * @example\n * n(\"0 3 7 [10,24]\").s('superzow').octave(3).djf(\"<.5 .25 .5 .75>\").osc()\n *\n */", "meta": { "filename": "controls.mjs", - "lineno": 214, + "lineno": 261, "columnno": 2, "path": "/home/felix/projects/strudel/packages/core", "code": {} @@ -506,14 +602,14 @@ "longname": "djf", "kind": "member", "scope": "global", - "___id": "T000002R000019", + "___id": "T000002R000022", "___s": true }, { "comment": "/**\n * Set detune of oscillators. Works only with some synths, see tidal doc\n *\n * @name detune\n * @param {number | Pattern} amount between 0 and 1\n * @example\n * n(\"0 3 7\").s('superzow').octave(3).detune(\"<0 .25 .5 1 2>\").osc()\n *\n */", "meta": { "filename": "controls.mjs", - "lineno": 238, + "lineno": 285, "columnno": 2, "path": "/home/felix/projects/strudel/packages/core", "code": {} @@ -538,14 +634,14 @@ "longname": "detune", "kind": "member", "scope": "global", - "___id": "T000002R000020", + "___id": "T000002R000023", "___s": true }, { "comment": "/**\n * Set dryness of reverb. See {@link room} and {@link size} for more information about reverb.\n *\n * @name dry\n * @param {number | Pattern} dry 0 = wet, 1 = dry\n * @example\n * n(\"[0,3,7](3,8)\").s(\"superpiano\").room(.7).dry(\"<0 .5 .75 1>\").osc()\n *\n */", "meta": { "filename": "controls.mjs", - "lineno": 248, + "lineno": 295, "columnno": 2, "path": "/home/felix/projects/strudel/packages/core", "code": {} @@ -570,7 +666,135 @@ "longname": "dry", "kind": "member", "scope": "global", - "___id": "T000002R000021", + "___id": "T000002R000024", + "___s": true + }, + { + "comment": "/**\n * Set frequency of sound.\n *\n * @name freq\n * @param {number | Pattern} frequency in Hz. the audible range is between 20 and 20000 Hz\n * @example\n * freq(\"220 110 440 110\").s(\"superzow\").osc()\n * @example\n * freq(\"110\".mulOut(\".5 1.5 .6 [2 3]\")).s(\"superzow\").osc()\n *\n */", + "meta": { + "filename": "controls.mjs", + "lineno": 330, + "columnno": 2, + "path": "/home/felix/projects/strudel/packages/core", + "code": {} + }, + "description": "

Set frequency of sound.

", + "name": "freq", + "params": [ + { + "type": { + "names": [ + "number", + "Pattern" + ] + }, + "description": "

in Hz. the audible range is between 20 and 20000 Hz

", + "name": "frequency" + } + ], + "examples": [ + "freq(\"220 110 440 110\").s(\"superzow\").osc()", + "freq(\"110\".mulOut(\".5 1.5 .6 [2 3]\")).s(\"superzow\").osc()" + ], + "longname": "freq", + "kind": "member", + "scope": "global", + "___id": "T000002R000025", + "___s": true + }, + { + "comment": "/**\n * Emulation of a Leslie speaker: speakers rotating in a wooden amplified cabinet.\n *\n * @name leslie\n * @param {number | Pattern} dry between 0 and 1\n * @example\n * n(\"0,4,7\").s(\"supersquare\").leslie(\"<0 .4 .6 1>\").osc()\n *\n */", + "meta": { + "filename": "controls.mjs", + "lineno": 353, + "columnno": 2, + "path": "/home/felix/projects/strudel/packages/core", + "code": {} + }, + "description": "

Emulation of a Leslie speaker: speakers rotating in a wooden amplified cabinet.

", + "name": "leslie", + "params": [ + { + "type": { + "names": [ + "number", + "Pattern" + ] + }, + "description": "

between 0 and 1

", + "name": "dry" + } + ], + "examples": [ + "n(\"0,4,7\").s(\"supersquare\").leslie(\"<0 .4 .6 1>\").osc()" + ], + "longname": "leslie", + "kind": "member", + "scope": "global", + "___id": "T000002R000026", + "___s": true + }, + { + "comment": "/**\n * Rate of modulation / rotation for leslie effect\n *\n * @name lrate\n * @param {number | Pattern} rate 6.7 for fast, 0.7 for slow\n * @example\n * n(\"0,4,7\").s(\"supersquare\").leslie(1).lrate(\"<1 2 4 8>\").osc()\n *\n */", + "meta": { + "filename": "controls.mjs", + "lineno": 363, + "columnno": 2, + "path": "/home/felix/projects/strudel/packages/core", + "code": {} + }, + "description": "

Rate of modulation / rotation for leslie effect

", + "name": "lrate", + "params": [ + { + "type": { + "names": [ + "number", + "Pattern" + ] + }, + "description": "

6.7 for fast, 0.7 for slow

", + "name": "rate" + } + ], + "examples": [ + "n(\"0,4,7\").s(\"supersquare\").leslie(1).lrate(\"<1 2 4 8>\").osc()" + ], + "longname": "lrate", + "kind": "member", + "scope": "global", + "___id": "T000002R000027", + "___s": true + }, + { + "comment": "/**\n * Physical size of the cabinet in meters. Be careful, it might be slightly larger than your computer. Affects the Doppler amount (pitch warble)\n *\n * @name lsize\n * @param {number | Pattern} meters \n * @example\n * n(\"0,4,7\").s(\"supersquare\").leslie(1).lrate(2).lsize(\"<.1 .5 1>\").osc()\n *\n */", + "meta": { + "filename": "controls.mjs", + "lineno": 374, + "columnno": 2, + "path": "/home/felix/projects/strudel/packages/core", + "code": {} + }, + "description": "

Physical size of the cabinet in meters. Be careful, it might be slightly larger than your computer. Affects the Doppler amount (pitch warble)

", + "name": "lsize", + "params": [ + { + "type": { + "names": [ + "number", + "Pattern" + ] + }, + "name": "meters" + } + ], + "examples": [ + "n(\"0,4,7\").s(\"supersquare\").leslie(1).lrate(2).lsize(\"<.1 .5 1>\").osc()" + ], + "longname": "lsize", + "kind": "member", + "scope": "global", + "___id": "T000002R000028", "___s": true }, { @@ -642,7 +866,7 @@ "longname": "drawLine", "kind": "function", "scope": "global", - "___id": "T000002R000028", + "___id": "T000002R000035", "___s": true }, { @@ -731,7 +955,7 @@ "longname": "Pattern#euclid", "kind": "function", "scope": "instance", - "___id": "T000002R000052", + "___id": "T000002R000059", "___s": true }, { @@ -768,7 +992,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000053", + "___id": "T000002R000060", "___s": true }, { @@ -806,7 +1030,7 @@ "name": "query" } ], - "___id": "T000002R000513", + "___id": "T000002R000520", "___s": true }, { @@ -869,7 +1093,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000515", + "___id": "T000002R000522", "___s": true }, { @@ -905,7 +1129,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000516", + "___id": "T000002R000523", "___s": true }, { @@ -953,7 +1177,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000519", + "___id": "T000002R000526", "___s": true }, { @@ -1001,7 +1225,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000520", + "___id": "T000002R000527", "___s": true }, { @@ -1048,7 +1272,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000521", + "___id": "T000002R000528", "___s": true }, { @@ -1096,7 +1320,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000522", + "___id": "T000002R000529", "___s": true }, { @@ -1143,7 +1367,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000523", + "___id": "T000002R000530", "___s": true }, { @@ -1190,7 +1414,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000524", + "___id": "T000002R000531", "___s": true }, { @@ -1237,7 +1461,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000525", + "___id": "T000002R000532", "___s": true }, { @@ -1284,7 +1508,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000526", + "___id": "T000002R000533", "___s": true }, { @@ -1320,7 +1544,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000527", + "___id": "T000002R000534", "___s": true }, { @@ -1376,7 +1600,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000528", + "___id": "T000002R000535", "___s": true }, { @@ -1423,7 +1647,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000562", + "___id": "T000002R000569", "___s": true }, { @@ -1456,7 +1680,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000563", + "___id": "T000002R000570", "___s": true }, { @@ -1504,7 +1728,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000564", + "___id": "T000002R000571", "___s": true }, { @@ -1551,7 +1775,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000565", + "___id": "T000002R000572", "___s": true }, { @@ -1587,7 +1811,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000566", + "___id": "T000002R000573", "___s": true }, { @@ -1623,7 +1847,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000567", + "___id": "T000002R000574", "___s": true }, { @@ -1659,7 +1883,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000568", + "___id": "T000002R000575", "___s": true }, { @@ -1706,7 +1930,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000576", + "___id": "T000002R000583", "___s": true }, { @@ -1753,7 +1977,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000578", + "___id": "T000002R000585", "___s": true }, { @@ -1800,7 +2024,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000590", + "___id": "T000002R000597", "___s": true }, { @@ -1849,7 +2073,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000602", + "___id": "T000002R000609", "___s": true }, { @@ -1880,7 +2104,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000605", + "___id": "T000002R000612", "___s": true }, { @@ -1911,7 +2135,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000606", + "___id": "T000002R000613", "___s": true }, { @@ -1947,7 +2171,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000607", + "___id": "T000002R000614", "___s": true }, { @@ -1983,7 +2207,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000626", + "___id": "T000002R000633", "___s": true }, { @@ -2019,7 +2243,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000627", + "___id": "T000002R000634", "___s": true }, { @@ -2055,7 +2279,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000628", + "___id": "T000002R000635", "___s": true }, { @@ -2091,7 +2315,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000629", + "___id": "T000002R000636", "___s": true }, { @@ -2127,7 +2351,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000630", + "___id": "T000002R000637", "___s": true }, { @@ -2183,7 +2407,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000631", + "___id": "T000002R000638", "___s": true }, { @@ -2239,7 +2463,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000632", + "___id": "T000002R000639", "___s": true }, { @@ -2295,7 +2519,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000633", + "___id": "T000002R000640", "___s": true }, { @@ -2331,7 +2555,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000730", + "___id": "T000002R000737", "___s": true }, { @@ -2382,7 +2606,7 @@ "longname": "pure", "kind": "function", "scope": "global", - "___id": "T000002R000848", + "___id": "T000002R000855", "___s": true }, { @@ -2434,7 +2658,7 @@ "longname": "stack", "kind": "function", "scope": "global", - "___id": "T000002R000855", + "___id": "T000002R000862", "___s": true }, { @@ -2486,7 +2710,7 @@ "longname": "slowcat", "kind": "function", "scope": "global", - "___id": "T000002R000859", + "___id": "T000002R000866", "___s": true }, { @@ -2535,7 +2759,7 @@ "longname": "slowcatPrime", "kind": "function", "scope": "global", - "___id": "T000002R000867", + "___id": "T000002R000874", "___s": true }, { @@ -2587,7 +2811,7 @@ "longname": "fastcat", "kind": "function", "scope": "global", - "___id": "T000002R000873", + "___id": "T000002R000880", "___s": true }, { @@ -2615,7 +2839,7 @@ "longname": "cat", "kind": "function", "scope": "global", - "___id": "T000002R000875", + "___id": "T000002R000882", "___s": true }, { @@ -2667,7 +2891,7 @@ "longname": "timeCat", "kind": "function", "scope": "global", - "___id": "T000002R000877", + "___id": "T000002R000884", "___s": true }, { @@ -2695,7 +2919,7 @@ "longname": "sequence", "kind": "function", "scope": "global", - "___id": "T000002R000884", + "___id": "T000002R000891", "___s": true }, { @@ -2723,7 +2947,7 @@ "longname": "seq", "kind": "function", "scope": "global", - "___id": "T000002R000886", + "___id": "T000002R000893", "___s": true }, { @@ -2762,7 +2986,7 @@ "scope": "static", "longname": "Pattern.transpose", "kind": "member", - "___id": "T000002R003695", + "___id": "T000002R003702", "___s": true }, { @@ -2799,7 +3023,7 @@ "scope": "static", "longname": "Pattern.scaleTranspose", "kind": "member", - "___id": "T000002R003699", + "___id": "T000002R003706", "___s": true }, { @@ -2836,7 +3060,7 @@ "scope": "static", "longname": "Pattern.scale", "kind": "member", - "___id": "T000002R003701", + "___id": "T000002R003708", "___s": true }, { @@ -2873,7 +3097,7 @@ "scope": "static", "longname": "Pattern.voicings", "kind": "member", - "___id": "T000002R003726", + "___id": "T000002R003733", "___s": true }, { @@ -2955,7 +3179,7 @@ "/home/felix/projects/strudel/packages/xen/tunejs.js", "/home/felix/projects/strudel/packages/xen/xen.mjs" ], - "___id": "T000002R013995", + "___id": "T000002R014002", "___s": true } ] diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index f3a1458b..20d58150 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -88,6 +88,11 @@ const generic_params = [ 'release', 'a pattern of numbers to specify the release time (in seconds) of an envelope applied to each sample.', ], + [ + 'f', + 'hold', + 'a pattern of numbers to specify the hold time (in seconds) of an envelope applied to each sample. Only takes effect if `attack` and `release` are also specified.', + ], // TODO: in tidal, it seems to be normalized /** * Sets the center frequency of the band-pass filter. @@ -210,7 +215,49 @@ const generic_params = [ * s("bd,hh*2,<~ sd>").fast(2).cutoff("<4000 2000 1000 500 200 100>").osc() * */ + // TODO: add lpf synonym ['f', 'cutoff', 'a pattern of numbers from 0 to 1. Applies the cutoff frequency of the low-pass filter.'], + /** + * Applies the cutoff frequency of the high-pass filter. + * + * @name hcutoff + * @param {number | Pattern} frequency audible between 0 and 20000 + * @example + * s("bd,hh*2,<~ sd>").fast(2).hcutoff("<4000 2000 1000 500 200 100>").osc() + * + */ + // TODO: add hpf synonym + [ + 'f', + 'hcutoff', + 'a pattern of numbers from 0 to 1. Applies the cutoff frequency of the high-pass filter. Also has alias @hpf@', + ], + /** + * Applies the cutoff frequency of the high-pass filter. + * + * @name hresonance + * @param {number | Pattern} q resonance factor between 0 and 1 + * @example + * s("bd,hh*2,<~ sd>").fast(2).hcutoff(2000).hresonance("<0 .2 .4 .6>").osc() + * + */ + [ + 'f', + 'hresonance', + 'a pattern of numbers from 0 to 1. Applies the resonance of the high-pass filter. Has alias @hpq@', + ], + // TODO: add hpq synonym + /** + * Applies the cutoff frequency of the low-pass filter. + * + * @name resonance + * @param {number | Pattern} q resonance factor between 0 and 1 + * @example + * s("bd,hh*2,<~ sd>").fast(2).cutoff(2000).resonance("<0 .2 .4 .6>").osc() + * + */ + ['f', 'resonance', 'a pattern of numbers from 0 to 1. Specifies the resonance of the low-pass filter.'], + // TODO: add lpq synonym? /** * Set detune of oscillators. Works only with some synths, see tidal doc * @@ -280,31 +327,59 @@ const generic_params = [ 'fadeInTime', 'As with fadeTime, but controls the fade in time of the grain envelope. Not used if the grain begins at position 0 in the sample.', ], + /** + * Set frequency of sound. + * + * @name freq + * @param {number | Pattern} frequency in Hz. the audible range is between 20 and 20000 Hz + * @example + * freq("220 110 440 110").s("superzow").osc() + * @example + * freq("110".mulOut(".5 1.5 .6 [2 3]")).s("superzow").osc() + * + */ ['f', 'freq', ''], + // TODO: https://tidalcycles.org/docs/configuration/MIDIOSC/control-voltage/#gate ['f', 'gate', ''], // ['f', 'hatgrain', ''], - [ - 'f', - 'hcutoff', - 'a pattern of numbers from 0 to 1. Applies the cutoff frequency of the high-pass filter. Also has alias @hpf@', - ], - [ - 'f', - 'hold', - 'a pattern of numbers to specify the hold time (in seconds) of an envelope applied to each sample. Only takes effect if `attack` and `release` are also specified.', - ], - [ - 'f', - 'hresonance', - 'a pattern of numbers from 0 to 1. Applies the resonance of the high-pass filter. Has alias @hpq@', - ], // ['f', 'lagogo', ''], // ['f', 'lclap', ''], // ['f', 'lclaves', ''], // ['f', 'lclhat', ''], // ['f', 'lcrash', ''], + // TODO: + // https://tidalcycles.org/docs/reference/audio_effects/#leslie-1 + // https://tidalcycles.org/docs/reference/audio_effects/#leslie + /** + * Emulation of a Leslie speaker: speakers rotating in a wooden amplified cabinet. + * + * @name leslie + * @param {number | Pattern} dry between 0 and 1 + * @example + * n("0,4,7").s("supersquare").leslie("<0 .4 .6 1>").osc() + * + */ ['f', 'leslie', ''], + /** + * Rate of modulation / rotation for leslie effect + * + * @name lrate + * @param {number | Pattern} rate 6.7 for fast, 0.7 for slow + * @example + * n("0,4,7").s("supersquare").leslie(1).lrate("<1 2 4 8>").osc() + * + */ + // TODO: the rate seems to "lag" (in the example, 1 will be fast) ['f', 'lrate', ''], + /** + * Physical size of the cabinet in meters. Be careful, it might be slightly larger than your computer. Affects the Doppler amount (pitch warble) + * + * @name lsize + * @param {number | Pattern} meters somewhere between 0 and 1 + * @example + * n("0,4,7").s("supersquare").leslie(1).lrate(2).lsize("<.1 .5 1>").osc() + * + */ ['f', 'lsize', ''], // ['f', 'lfo', ''], // ['f', 'lfocutoffint', ''], @@ -377,7 +452,6 @@ const generic_params = [ // ['f', 'pitch3', ''], // ['f', 'portamento', ''], ['f', 'rate', "used in SuperDirt softsynths as a control rate or 'speed'"], - ['f', 'resonance', 'a pattern of numbers from 0 to 1. Specifies the resonance of the low-pass filter.'], ['f', 'room', 'a pattern of numbers from 0 to 1. Sets the level of reverb.'], // ['f', 'sagogo', ''], // ['f', 'sclap', ''],