diff --git a/doc.json b/doc.json index cd4e29d1..2c90c62c 100644 --- a/doc.json +++ b/doc.json @@ -1,7 +1,7 @@ { "docs": [ { - "comment": "/**\n * Short for sound. Currently only supported with osc / superdirt.\n *\n * @name s\n * @param {string | Pattern} sound The sound / pattern of sounds to pick\n * @example\n * s(\"bd hh\").osc()\n *\n */", + "comment": "/**\n * Select a sound / sample by name. Currently only supported by osc / superdirt.\n *\n * @name s\n * @param {string | Pattern} sound The sound / pattern of sounds to pick\n * @example\n * s(\"bd hh\").osc()\n *\n */", "meta": { "filename": "controls.mjs", "lineno": 11, @@ -9,7 +9,7 @@ "path": "/home/felix/projects/strudel/packages/core", "code": {} }, - "description": "

Short for sound. Currently only supported with osc / superdirt.

", + "description": "

Select a sound / sample by name. Currently only supported by osc / superdirt.

", "name": "s", "params": [ { @@ -32,6 +32,134 @@ "___id": "T000002R000004", "___s": true }, + { + "comment": "/**\n * A pattern of numbers that speed up (or slow down) samples while they play. Currently only supported by osc / superdirt.\n *\n * @name accelerate\n * @param {number | Pattern} amount acceleration.\n * @example\n * s(\"bd\").accelerate(\"<1 2 1 4>\").osc()\n *\n */", + "meta": { + "filename": "controls.mjs", + "lineno": 24, + "columnno": 2, + "path": "/home/felix/projects/strudel/packages/core", + "code": {} + }, + "description": "

A pattern of numbers that speed up (or slow down) samples while they play. Currently only supported by osc / superdirt.

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

acceleration.

", + "name": "amount" + } + ], + "examples": [ + "s(\"bd\").accelerate(\"<1 2 1 4>\").osc()" + ], + "longname": "accelerate", + "kind": "member", + "scope": "global", + "___id": "T000002R000005", + "___s": true + }, + { + "comment": "/**\n * Like {@link gain}, but linear.\n *\n * @name amp\n * @param {number | Pattern} amount gain.\n * @example\n * s(\"bd*8\").amp(\".1*2 .5 .1*2 .5 .1 .5\").osc()\n *\n */", + "meta": { + "filename": "controls.mjs", + "lineno": 34, + "columnno": 2, + "path": "/home/felix/projects/strudel/packages/core", + "code": {} + }, + "description": "

Like {@link gain}, but linear.

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

gain.

", + "name": "amount" + } + ], + "examples": [ + "s(\"bd*8\").amp(\".1*2 .5 .1*2 .5 .1 .5\").osc()" + ], + "longname": "amp", + "kind": "member", + "scope": "global", + "___id": "T000002R000006", + "___s": true + }, + { + "comment": "/**\n * A pattern of numbers to specify the attack time of an envelope applied to each sample.\n *\n * @name attack\n * @param {number | Pattern} attack time in seconds.\n * @example\n * n(\"c5 e5\").s('superpiano').attack(\"<0 .1>\").osc()\n *\n */", + "meta": { + "filename": "controls.mjs", + "lineno": 45, + "columnno": 2, + "path": "/home/felix/projects/strudel/packages/core", + "code": {} + }, + "description": "

A pattern of numbers to specify the attack time of an envelope applied to each sample.

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

time in seconds.

", + "name": "attack" + } + ], + "examples": [ + "n(\"c5 e5\").s('superpiano').attack(\"<0 .1>\").osc()" + ], + "longname": "attack", + "kind": "member", + "scope": "global", + "___id": "T000002R000007", + "___s": true + }, + { + "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": 60, + "columnno": 2, + "path": "/home/felix/projects/strudel/packages/core", + "code": {} + }, + "description": "

Sets the center frequency of the band-pass filter.

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

center frequency

", + "name": "frequency" + } + ], + "examples": [ + "s(\"bd sd\").bandf(\"<1000 2000 4000 8000>\").osc()" + ], + "longname": "bandf", + "kind": "member", + "scope": "global", + "___id": "T000002R000008", + "___s": true + }, { "comment": "/**\n * Intended for a debugging, drawLine renders the pattern as a string, where each character represents the same time span.\n * Should only be used with single characters as values, otherwise the character slots will be messed up.\n * Character legend:\n *\n * - \"|\" cycle separator\n * - \"-\" hold previous value\n * - \".\" silence\n *\n * @param {Pattern} pattern the pattern to use\n * @param {number} chars max number of characters (approximately)\n * @returns string\n * @example\n * const line = drawLine(\"0 [1 2 3]\", 10); // |0--123|0--123\n * console.log(line);\n */", "meta": { @@ -101,7 +229,7 @@ "longname": "drawLine", "kind": "function", "scope": "global", - "___id": "T000002R000011", + "___id": "T000002R000015", "___s": true }, { @@ -190,7 +318,7 @@ "longname": "Pattern#euclid", "kind": "function", "scope": "instance", - "___id": "T000002R000035", + "___id": "T000002R000039", "___s": true }, { @@ -227,7 +355,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000036", + "___id": "T000002R000040", "___s": true }, { @@ -265,7 +393,7 @@ "name": "query" } ], - "___id": "T000002R000496", + "___id": "T000002R000500", "___s": true }, { @@ -328,7 +456,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000498", + "___id": "T000002R000502", "___s": true }, { @@ -364,7 +492,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000499", + "___id": "T000002R000503", "___s": true }, { @@ -412,7 +540,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000502", + "___id": "T000002R000506", "___s": true }, { @@ -460,7 +588,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000503", + "___id": "T000002R000507", "___s": true }, { @@ -507,7 +635,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000504", + "___id": "T000002R000508", "___s": true }, { @@ -555,7 +683,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000505", + "___id": "T000002R000509", "___s": true }, { @@ -602,7 +730,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000506", + "___id": "T000002R000510", "___s": true }, { @@ -649,7 +777,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000507", + "___id": "T000002R000511", "___s": true }, { @@ -696,7 +824,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000508", + "___id": "T000002R000512", "___s": true }, { @@ -743,7 +871,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000509", + "___id": "T000002R000513", "___s": true }, { @@ -779,7 +907,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000510", + "___id": "T000002R000514", "___s": true }, { @@ -835,7 +963,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000511", + "___id": "T000002R000515", "___s": true }, { @@ -882,7 +1010,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000545", + "___id": "T000002R000549", "___s": true }, { @@ -915,7 +1043,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000546", + "___id": "T000002R000550", "___s": true }, { @@ -963,7 +1091,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000547", + "___id": "T000002R000551", "___s": true }, { @@ -1010,7 +1138,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000548", + "___id": "T000002R000552", "___s": true }, { @@ -1046,7 +1174,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000549", + "___id": "T000002R000553", "___s": true }, { @@ -1082,7 +1210,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000550", + "___id": "T000002R000554", "___s": true }, { @@ -1118,7 +1246,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000551", + "___id": "T000002R000555", "___s": true }, { @@ -1165,7 +1293,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000559", + "___id": "T000002R000563", "___s": true }, { @@ -1212,7 +1340,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000561", + "___id": "T000002R000565", "___s": true }, { @@ -1259,7 +1387,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000573", + "___id": "T000002R000577", "___s": true }, { @@ -1308,7 +1436,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000585", + "___id": "T000002R000589", "___s": true }, { @@ -1339,7 +1467,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000588", + "___id": "T000002R000592", "___s": true }, { @@ -1370,7 +1498,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000589", + "___id": "T000002R000593", "___s": true }, { @@ -1406,7 +1534,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000590", + "___id": "T000002R000594", "___s": true }, { @@ -1442,7 +1570,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000609", + "___id": "T000002R000613", "___s": true }, { @@ -1478,7 +1606,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000610", + "___id": "T000002R000614", "___s": true }, { @@ -1514,7 +1642,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000611", + "___id": "T000002R000615", "___s": true }, { @@ -1550,7 +1678,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000612", + "___id": "T000002R000616", "___s": true }, { @@ -1586,7 +1714,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000613", + "___id": "T000002R000617", "___s": true }, { @@ -1642,7 +1770,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000614", + "___id": "T000002R000618", "___s": true }, { @@ -1698,7 +1826,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000615", + "___id": "T000002R000619", "___s": true }, { @@ -1754,7 +1882,7 @@ "kind": "function", "memberof": "Pattern", "scope": "instance", - "___id": "T000002R000616", + "___id": "T000002R000620", "___s": true }, { @@ -1790,7 +1918,7 @@ "memberof": "Pattern", "scope": "instance", "params": [], - "___id": "T000002R000713", + "___id": "T000002R000717", "___s": true }, { @@ -1841,7 +1969,7 @@ "longname": "pure", "kind": "function", "scope": "global", - "___id": "T000002R000831", + "___id": "T000002R000835", "___s": true }, { @@ -1893,7 +2021,7 @@ "longname": "stack", "kind": "function", "scope": "global", - "___id": "T000002R000838", + "___id": "T000002R000842", "___s": true }, { @@ -1945,7 +2073,7 @@ "longname": "slowcat", "kind": "function", "scope": "global", - "___id": "T000002R000842", + "___id": "T000002R000846", "___s": true }, { @@ -1994,7 +2122,7 @@ "longname": "slowcatPrime", "kind": "function", "scope": "global", - "___id": "T000002R000850", + "___id": "T000002R000854", "___s": true }, { @@ -2046,7 +2174,7 @@ "longname": "fastcat", "kind": "function", "scope": "global", - "___id": "T000002R000856", + "___id": "T000002R000860", "___s": true }, { @@ -2074,7 +2202,7 @@ "longname": "cat", "kind": "function", "scope": "global", - "___id": "T000002R000858", + "___id": "T000002R000862", "___s": true }, { @@ -2126,7 +2254,7 @@ "longname": "timeCat", "kind": "function", "scope": "global", - "___id": "T000002R000860", + "___id": "T000002R000864", "___s": true }, { @@ -2154,7 +2282,7 @@ "longname": "sequence", "kind": "function", "scope": "global", - "___id": "T000002R000867", + "___id": "T000002R000871", "___s": true }, { @@ -2182,7 +2310,7 @@ "longname": "seq", "kind": "function", "scope": "global", - "___id": "T000002R000869", + "___id": "T000002R000873", "___s": true }, { @@ -2221,7 +2349,7 @@ "scope": "static", "longname": "Pattern.transpose", "kind": "member", - "___id": "T000002R003678", + "___id": "T000002R003682", "___s": true }, { @@ -2258,7 +2386,7 @@ "scope": "static", "longname": "Pattern.scaleTranspose", "kind": "member", - "___id": "T000002R003682", + "___id": "T000002R003686", "___s": true }, { @@ -2295,7 +2423,7 @@ "scope": "static", "longname": "Pattern.scale", "kind": "member", - "___id": "T000002R003684", + "___id": "T000002R003688", "___s": true }, { @@ -2332,7 +2460,7 @@ "scope": "static", "longname": "Pattern.voicings", "kind": "member", - "___id": "T000002R003709", + "___id": "T000002R003713", "___s": true }, { @@ -2414,7 +2542,7 @@ "/home/felix/projects/strudel/packages/xen/tunejs.js", "/home/felix/projects/strudel/packages/xen/xen.mjs" ], - "___id": "T000002R013978", + "___id": "T000002R013982", "___s": true } ] diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index 4093eccf..83c75455 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -9,7 +9,7 @@ import { Pattern, sequence } from './pattern.mjs'; const controls = {}; const generic_params = [ /** - * Short for sound. Currently only supported with osc / superdirt. + * Select a sound / sample by name. Currently only supported by osc / superdirt. * * @name s * @param {string | Pattern} sound The sound / pattern of sounds to pick @@ -21,14 +21,52 @@ const generic_params = [ //['s', 'toArg', 'for internal sound routing'], // ["f", "from", "for internal sound routing"), //['f', 'to', 'for internal sound routing'], + /** + * A pattern of numbers that speed up (or slow down) samples while they play. Currently only supported by osc / superdirt. + * + * @name accelerate + * @param {number | Pattern} amount acceleration. + * @example + * s("bd").accelerate("<1 2 1 4>").osc() + * + */ ['f', 'accelerate', 'a pattern of numbers that speed up (or slow down) samples while they play.'], + /** + * Like {@link gain}, but linear. + * + * @name amp + * @param {number | Pattern} amount gain. + * @example + * s("bd*8").amp(".1*2 .5 .1*2 .5 .1 .5").osc() + * + */ ['f', 'amp', 'like @gain@, but linear.'], + // TODO: find out why 0 does not work, and it generally seems not right + /** + * A pattern of numbers to specify the attack time of an envelope applied to each sample. + * + * @name attack + * @param {number | Pattern} attack time in seconds. + * @example + * n("c5 e5").s('superpiano').attack("<0 .1>").osc() + * + */ [ 'f', 'attack', 'a pattern of numbers to specify the attack time (in seconds) of an envelope applied to each sample.', ], - ['f', 'bandf', 'a pattern of numbers from 0 to 1. Sets the center frequency of the band-pass filter.'], + // TODO: in tidal, it seems to be normalized + /** + * Sets the center frequency of the band-pass filter. + * + * @name bandf + * @param {number | Pattern} frequency center frequency + * @example + * s("bd sd").bandf("<1000 2000 4000 8000>").osc() + * + */ + ['f', 'bandf', 'A pattern of numbers from 0 to 1. Sets the center frequency of the band-pass filter.'], ['f', 'bandq', 'a pattern of anumbers from 0 to 1. Sets the q-factor of the band-pass filter.'], [ 'f',