diff --git a/src/documentation/inlineHelp.ts b/src/documentation/inlineHelp.ts index 241c9b8..7c374d8 100644 --- a/src/documentation/inlineHelp.ts +++ b/src/documentation/inlineHelp.ts @@ -55,6 +55,30 @@ const completionDatabase: CompletionDatabase = { description: "FM synth modulator ratio", example: "sound('fm').fmi(2).fmh(2).out()", }, + fmattack: { + name: "fmattack", + category: "synthesis", + description: "FM synth modulator ADSR envelope attack time (in seconds)", + example: "sound('sine').fmi(2).fmattack(.5).out()", + }, + fmdecay: { + name: "fmdecay", + category: "synthesis", + description: "FM synth modulator ADSR envelope decay time (in seconds)", + example: "sound('sine').fmi(2).fmdecay(.5).out()", + }, + fmsustain: { + name: "fmsustain", + category: "synthesis", + description: "FM synth modulator ADSR envelope sustain level (0-1)", + example: "sound('sine').fmi(2).fmsustain(.5).out()", + }, + fmrelease: { + name: "fmrelease", + category: "synthesis", + description: "FM synth modulator ADSR envelope release time (in seconds)", + example: "sound('sine').fmi(2).fmrelease(.5).out()", + }, repeatAll: { name: "repeatAll", category: "patterns", @@ -110,12 +134,67 @@ const completionDatabase: CompletionDatabase = { description: "Lowpass filter cutoff frequency", example: "sound('cp').cutoff(1000).out()", }, + resonance: { + name: "resonance", + category: "filter", + description: "Lowpass filter resonance", + example: "sound('cp').resonance(1).out()", + }, + hcutoff: { + name: "hcutoff", + category: "filter", + description: "Highpass filter cutoff frequency", + example: "sound('cp').hcutoff(1000).out()", + }, + hresonance: { + name: "hresonance", + category: "filter", + description: "Highpass filter resonance", + example: "sound('cp').hresonance(1).out()", + }, + bandf: { + name: "bandf", + category: "filter", + description: "Bandpass filter cutoff frequency", + example: "sound('cp').bandf(1000).out()", + }, + bandq: { + name: "bandq", + category: "filter", + description: "Bandpass filter resonance", + example: "sound('cp').bandq(1).out()", + }, + vowel: { + name: "vowel", + category: "filter", + description: "Vowel filter type", + example: "sound('cp').vowel('a').out()", + }, + coarse: { + name: "coarse", + category: "synthesis", + description: "Artificial sample-rate lowering", + example: "mod(.5)::snd('pad').coarse($(1) % 16).clip(.5).out();", + }, + crush: { + name: "crush", + category: "synthesis", + description: + "Bitcrushing effect. 1 is extreme, superior values are more subtle.", + example: "", + }, speed: { name: "speed", category: "sampling", description: "Sample playback speed", example: "sound('cp').speed(.5).out()", }, + shape: { + name: "shape", + category: "synthesis", + description: "Waveshaping distorsion", + example: "sound('cp').shape(.5).out()", + }, delay: { name: "delay", category: "effect", @@ -274,6 +353,12 @@ const completionDatabase: CompletionDatabase = { description: "Binary rhythm generator", example: "binrhythm(9223) :: sound('cp').out()", }, + prob: { + name: "prob", + category: "randomness", + description: "Return true with a probability of n %", + example: "prob(50) // 50% probability", + }, rand: { name: "rand", category: "randomness", @@ -323,6 +408,139 @@ const completionDatabase: CompletionDatabase = { description: "Execute one or more local scripts", example: "mod(1) :: script(1)", }, + warp: { + name: "warp", + category: "core", + description: "jumps to the n tick of the clock.", + example: "warp(1) :: log('back to the big bang!')", + }, + beat_warp: { + name: "beat_warp", + category: "core", + description: "jumps to the n beat of the clock.", + example: "beat_warp(1) :: log('back to the first beat!')", + }, + divbar: { + name: "divbar", + category: "time", + description: + "works just like div but at the level of bars instead of beats", + example: "divbar(2)::mod(1)::snd('kick').out()", + }, + onbar: { + name: "onbar", + category: "time", + description: "return true when targetted bar(s) is/are reached in period", + example: "onbar(4, 4)::mod(.5)::snd('hh').out();", + }, + begin: { + name: "begin", + category: "sampling", + description: "Audio playback start time (0-1)", + example: "sound('cp').begin(.5).out()", + }, + end: { + name: "end", + category: "sampling", + description: "Audio playback end time (0-1)", + example: "sound('cp').end(.5).out()", + }, + mouseX: { + name: "mouseX", + category: "mouse", + description: "Mouse X position (big float)", + example: "log(mouseX())", + }, + mouseY: { + name: "mouseY", + category: "mouse", + description: "Mouse Y position (big float)", + example: "log(mouseY())", + }, + noteX: { + name: "noteX", + category: "mouse", + description: "Mouse X position (as MIDI note)", + example: "log(noteX())", + }, + noteY: { + name: "noteY", + category: "mouse", + description: "Mouse Y position (as MIDI note)", + example: "log(noteY())", + }, + cut: { + name: "cut", + category: "sampling", + description: "Cutting sample when other sample met on same orbit (0 or 1)", + example: "sound('cp').cut(1).out()", + }, + pan: { + name: "pan", + category: "audio", + description: "Stereo panning (-1 to 1)", + example: "sound('cp').pan(-1).out()", + }, + zrand: { + name: "zrand", + category: "synthesis", + description: "ZzFX randomisation factor", + example: "sound('zzfx').zrand(.5).out()", + }, + curve: { + name: "curve", + category: "synthesis", + description: "ZzFX waveshaping (0-3)", + example: "sound('zzfx').curve(1).out()", + }, + slide: { + name: "slide", + category: "synthesis", + description: "ZzFX pitch slide", + example: "sound('zzfx').slide(1).out()", + }, + deltaSlide: { + name: "deltaSlide", + category: "synthesis", + description: "ZzFX pitch delta slide", + example: "sound('zzfx').deltaSlide(1).out()", + }, + pitchJump: { + name: "pitchJump", + category: "synthesis", + description: "ZzFX pitch jump", + example: "sound('zzfx').pitchJump(1).out()", + }, + pitchJumpTime: { + name: "pitchJumpTime", + category: "synthesis", + description: "ZzFX pitch jump time (time before jump)", + example: "sound('zzfx').pitchJumpTime(1).out()", + }, + zcrush: { + name: "zcrush", + category: "synthesis", + description: "ZzFX bitcrushing", + example: "sound('zzfx').zcrush(1).out()", + }, + zdelay: { + name: "zdelay", + category: "synthesis", + description: "ZzFX delay", + example: "sound('zzfx').zdelay(1).out()", + }, + tremolo: { + name: "tremolo", + category: "synthesis", + description: "ZzFX weird tremolo effect", + example: "sound('zzfx').tremolo(1).out()", + }, + speak: { + name: "speak", + category: "synthesis", + description: "Text to speech synthesizer", + example: "mod(2) :: speak('Topos!','fr',irand(0,5))", + }, }; export const inlineHoveringTips = hoverTooltip(