.. _stdlib_strudel_pattern: ==================================================== Pattern algebra, combinators, and fluent control API ==================================================== .. das:module:: strudel_pattern Module strudel_pattern ++++++++++++ Type aliases ++++++++++++ .. _alias-Pattern: .. das:attribute:: Pattern = lambda<(span:TimeSpan const):array> A Pattern is a pure function from a query `TimeSpan` to the `Hap`s (events with timing info) that fall within it. No side effects, no audio — just data. All combinators in this module take and return `Pattern`. .. _alias-PatternTransform: .. das:attribute:: PatternTransform = lambda<(var pat:lambda<(span:TimeSpan const):array>):lambda<(span:TimeSpan const):array>> A function pattern → pattern. Passed to combinators like ``jux`` and ``off`` to describe how the transformed copy of a pattern should differ from the original. Use ``@(x) => rev(x)`` for a lambda literal at call sites. ++++++++++++++++++++ Pattern construction ++++++++++++++++++++ * :ref:`atom (name: string) : Pattern ` * :ref:`pure (value: Event) : Pattern ` * :ref:`silence () : Pattern ` .. _function-strudel_pattern_atom_string: .. das:function:: atom(name: string) : Pattern Shorthand for `pure(Event(s=name))` — a pattern with one event per cycle using the named sound. Example: `atom("bd")`. :Arguments: * **name** : string .. _function-strudel_pattern_pure_Event: .. das:function:: pure(value: Event) : Pattern Lifts an `Event` into a `Pattern` that emits that value once per cycle, spanning the entire cycle. :Arguments: * **value** : :ref:`Event ` .. _function-strudel_pattern_silence: .. das:function:: silence() : Pattern The empty pattern — produces no haps for any query span. +++++++++++++++++ Time manipulation +++++++++++++++++ * :ref:`cat (var pats: array\) : Pattern ` * :ref:`fast (var pat: Pattern; var factor_pat: Pattern) : Pattern ` * :ref:`fast (var pat: Pattern; n: double) : Pattern ` * :ref:`fastcat (var pats: array\) : Pattern ` * :ref:`fmap (var pat: Pattern; var fn: lambda\<(e:Event):Event\>) : Pattern ` * :ref:`slow (var pat: Pattern; n: double) : Pattern ` * :ref:`slow (var pat: Pattern; var factor_pat: Pattern) : Pattern ` * :ref:`stack (var pats: array\) : Pattern ` * :ref:`weighted_fastcat (var pats: array\; var weights: array\) : Pattern ` .. _function-strudel_pattern_cat_array_ls_Pattern_gr_: .. das:function:: cat(pats: array) : Pattern Sequences patterns across cycles — with N patterns, pattern `i` plays during cycle `i mod N`, each stretched to one cycle. Example: `cat([s("bd"), s("sd")])`. :Arguments: * **pats** : array< :ref:`Pattern `> fast ^^^^ .. _function-strudel_pattern_fast_Pattern_Pattern: .. das:function:: fast(pat: Pattern; factor_pat: Pattern) : Pattern Patternified `fast` — speed factor varies per cycle from `factor_pat`'s note values. Example: `fast(pat, n("<1 2 4>"))`. :Arguments: * **pat** : :ref:`Pattern ` * **factor_pat** : :ref:`Pattern ` .. _function-strudel_pattern_fast_Pattern_double: .. das:function:: fast(pat: Pattern; n: double) : Pattern ---- .. _function-strudel_pattern_fastcat_array_ls_Pattern_gr_: .. das:function:: fastcat(pats: array) : Pattern Like `cat` but squeezes all patterns into a single cycle, side by side. Example: `fastcat([s("bd"), s("sd"), s("hh")])`. :Arguments: * **pats** : array< :ref:`Pattern `> .. _function-strudel_pattern_fmap_Pattern_lambda_ls_e_c_Event_c_Event_gr_: .. das:function:: fmap(pat: Pattern; fn: lambda<(e:Event):Event>) : Pattern Applies `fn` to the `Event` value of every hap produced by `pat`, preserving timing. The functor-map over patterns. :Arguments: * **pat** : :ref:`Pattern ` * **fn** : lambda<(e: :ref:`Event `): :ref:`Event `> slow ^^^^ .. _function-strudel_pattern_slow_Pattern_double: .. das:function:: slow(pat: Pattern; n: double) : Pattern Slows down `pat` by factor `n` — `pat` takes `n` cycles to complete once. Example: `s("bd sd") |> slow(2.0lf)`. :Arguments: * **pat** : :ref:`Pattern ` * **n** : double .. _function-strudel_pattern_slow_Pattern_Pattern: .. das:function:: slow(pat: Pattern; factor_pat: Pattern) : Pattern ---- .. _function-strudel_pattern_stack_array_ls_Pattern_gr_: .. das:function:: stack(pats: array) : Pattern Layers all patterns simultaneously — every pattern plays at once. Example: `stack([s("bd"), s("hh"), s("sd")])`. :Arguments: * **pats** : array< :ref:`Pattern `> .. _function-strudel_pattern_weighted_fastcat_array_ls_Pattern_gr__array_ls_float_gr_: .. das:function:: weighted_fastcat(pats: array; weights: array) : Pattern Like `fastcat` but each element's cycle slice is proportional to its weight. Example: `weighted_fastcat([a, b], [3.0, 1.0])` — `a` fills 3/4, `b` fills 1/4. :Arguments: * **pats** : array< :ref:`Pattern `> * **weights** : array +++++++++++ Combinators +++++++++++ * :ref:`add (var pat: Pattern; semitones: float) : Pattern ` * :ref:`bjorklund (k: int; n: int) : array\ ` * :ref:`choose (var pats: array\) : Pattern ` * :ref:`chooseCycles (var pats: array\) : Pattern ` * :ref:`chunk (var pat: Pattern; n: int; transform: PatternTransform) : Pattern ` * :ref:`combineWith (var pat: Pattern; var val_pat: Pattern; var fn: lambda\<(e:Event;val:float):Event\>) : Pattern ` * :ref:`combineWithStr (var pat: Pattern; var val_pat: Pattern; var fn: lambda\<(e:Event;val:string):Event\>) : Pattern ` * :ref:`compress (var pat: Pattern; b: double; e: double) : Pattern ` * :ref:`degrade (var pat: Pattern; prob: float) : Pattern ` * :ref:`degradeBy (var pat: Pattern; prob: float) : Pattern ` * :ref:`echo (var pat: Pattern; times: int; time: double; feedback: float) : Pattern ` * :ref:`euclid (var pat: Pattern; k: int; n: int) : Pattern ` * :ref:`every (n: int; var pat_on: Pattern; var pat_off: Pattern) : Pattern ` * :ref:`hurry (var pat: Pattern; factor: double) : Pattern ` * :ref:`innerJoin (var param_pat: Pattern; var fn: lambda\<(val:float):Pattern\>) : Pattern ` * :ref:`iter (var pat: Pattern; n: int) : Pattern ` * :ref:`iterBack (var pat: Pattern; n: int) : Pattern ` * :ref:`jux (var pat: Pattern; transform: PatternTransform) : Pattern ` * :ref:`layer (var pats: array\; var base: Pattern) : Pattern ` * :ref:`linger (var pat: Pattern; t: double) : Pattern ` * :ref:`mask (var pat: Pattern; var mask_pat: Pattern) : Pattern ` * :ref:`off (var pat: Pattern; time: double; transform: PatternTransform) : Pattern ` * :ref:`often (var pat: Pattern; transform: PatternTransform) : Pattern ` * :ref:`palindrome (var pat: Pattern) : Pattern ` * :ref:`ply (var pat: Pattern; n: int) : Pattern ` * :ref:`randcat (var pats: array\) : Pattern ` * :ref:`rev (var pat: Pattern) : Pattern ` * :ref:`scramble (var pat: Pattern; n: int) : Pattern ` * :ref:`shuffle (var pat: Pattern; n: int) : Pattern ` * :ref:`sometimes (var pat: Pattern; transform: PatternTransform) : Pattern ` * :ref:`sometimesby (var pat: Pattern; prob: float; transform: PatternTransform) : Pattern ` * :ref:`striate (var pat: Pattern; n: int) : Pattern ` * :ref:`struct_ (var pat: Pattern; var bool_pat: Pattern) : Pattern ` * :ref:`stut (var pat: Pattern; times: int; feedback: float; time: double) : Pattern ` * :ref:`superimpose (var pat: Pattern; transform: PatternTransform) : Pattern ` * :ref:`transpose (var pat: Pattern; semitones: float) : Pattern ` * :ref:`wchoose (var pats: array\; var weights: array\) : Pattern ` * :ref:`when_cycle (var pat: Pattern; var cond: lambda\<(cycle:int):bool\>; transform: PatternTransform) : Pattern ` .. _function-strudel_pattern_add_Pattern_float: .. das:function:: add(pat: Pattern; semitones: float) : Pattern Alias for `transpose` — adds `semitones` to each event's note. Matches strudel naming. :Arguments: * **pat** : :ref:`Pattern ` * **semitones** : float .. _function-strudel_pattern_bjorklund_int_int: .. das:function:: bjorklund(k: int; n: int) : array Bjorklund's algorithm — distributes `k` onsets as evenly as possible across `n` slots. Example: `bjorklund(3, 8)` gives `[x . . x . . x .]`. :Arguments: * **k** : int * **n** : int .. _function-strudel_pattern_choose_array_ls_Pattern_gr_: .. das:function:: choose(pats: array) : Pattern Randomly (deterministically) picks one pattern from `pats` per cycle. Example: `choose([s("bd"), s("cp"), s("sd")])`. :Arguments: * **pats** : array< :ref:`Pattern `> .. _function-strudel_pattern_chooseCycles_array_ls_Pattern_gr_: .. das:function:: chooseCycles(pats: array) : Pattern Alias for `choose` — one random pick per cycle. Present for pattern libraries where `choose` is a continuous rand signal. :Arguments: * **pats** : array< :ref:`Pattern `> .. _function-strudel_pattern_chunk_Pattern_int_PatternTransform: .. das:function:: chunk(pat: Pattern; n: int; transform: PatternTransform) : Pattern Divides each cycle into `n` chunks, applying `transform` to a different chunk each cycle (rotating). Example: `pat |> chunk(4, @@(x) => fast(x, 2.0lf))`. :Arguments: * **pat** : :ref:`Pattern ` * **n** : int * **transform** : :ref:`PatternTransform ` .. _function-strudel_pattern_combineWith_Pattern_Pattern_lambda_ls_e_c_Event;val_c_float_c_Event_gr_: .. das:function:: combineWith(pat: Pattern; val_pat: Pattern; fn: lambda<(e:Event;val:float):Event>) : Pattern For each hap in `pat`, samples `val_pat` at the hap's onset and applies `fn(event, sampledValue)` to produce the output event. Core primitive for pattern-modulated setters. :Arguments: * **pat** : :ref:`Pattern ` * **val_pat** : :ref:`Pattern ` * **fn** : lambda<(e: :ref:`Event `;val:float): :ref:`Event `> .. _function-strudel_pattern_combineWithStr_Pattern_Pattern_lambda_ls_e_c_Event;val_c_string_c_Event_gr_: .. das:function:: combineWithStr(pat: Pattern; val_pat: Pattern; fn: lambda<(e:Event;val:string):Event>) : Pattern Like `combineWith` but samples a string from `val_pat`'s `event.s` field. Used for string-typed parameters (e.g. `vowel`, `s`). :Arguments: * **pat** : :ref:`Pattern ` * **val_pat** : :ref:`Pattern ` * **fn** : lambda<(e: :ref:`Event `;val:string): :ref:`Event `> .. _function-strudel_pattern_compress_Pattern_double_double: .. das:function:: compress(pat: Pattern; b: double; e: double) : Pattern Squeezes `pat` into the cycle-time window `[b, e]`. Example: `pat |> compress(0.25lf, 0.75lf)` plays the pattern in the middle half. :Arguments: * **pat** : :ref:`Pattern ` * **b** : double * **e** : double .. _function-strudel_pattern_degrade_Pattern_float: .. das:function:: degrade(pat: Pattern; prob: float) : Pattern Randomly drops events from `pat` with probability `prob` (0..1). Deterministic — same time yields same result. Example: `s("bd*8") |> degrade(0.3)`. :Arguments: * **pat** : :ref:`Pattern ` * **prob** : float .. _function-strudel_pattern_degradeBy_Pattern_float: .. das:function:: degradeBy(pat: Pattern; prob: float) : Pattern Alias for `degrade` with explicit probability. Randomly drops events with probability `prob`. Example: `pat |> degradeBy(0.3)`. :Arguments: * **pat** : :ref:`Pattern ` * **prob** : float .. _function-strudel_pattern_echo_Pattern_int_double_float: .. das:function:: echo(pat: Pattern; times: int; time: double; feedback: float) : Pattern Repeats every event `times` times, offset by `time` cycles each, with each repeat scaled by `feedback`. Example: `pat |> echo(3, 0.25lf, 0.5)`. :Arguments: * **pat** : :ref:`Pattern ` * **times** : int * **time** : double * **feedback** : float .. _function-strudel_pattern_euclid_Pattern_int_int: .. das:function:: euclid(pat: Pattern; k: int; n: int) : Pattern Euclidean rhythm — `pat` plays at `k` evenly-spaced onsets over `n` subdivisions of each cycle. Example: `atom("bd") |> euclid(3, 8)` → hits on steps 0, 3, 6. :Arguments: * **pat** : :ref:`Pattern ` * **k** : int * **n** : int .. _function-strudel_pattern_every_int_Pattern_Pattern: .. das:function:: every(n: int; pat_on: Pattern; pat_off: Pattern) : Pattern Plays `pat_on` on every `n`-th cycle, `pat_off` otherwise. Example: `every(4, s("cp"), s("bd"))` — clap every 4th cycle. :Arguments: * **n** : int * **pat_on** : :ref:`Pattern ` * **pat_off** : :ref:`Pattern ` .. _function-strudel_pattern_hurry_Pattern_double: .. das:function:: hurry(pat: Pattern; factor: double) : Pattern Combined `fast` + `set_speed` — speeds up both pattern timing AND sample playback by `factor`. Example: `pat |> hurry(2.0lf)`. :Arguments: * **pat** : :ref:`Pattern ` * **factor** : double .. _function-strudel_pattern_innerJoin_Pattern_lambda_ls_val_c_float_c_Pattern_gr_: .. das:function:: innerJoin(param_pat: Pattern; fn: lambda<(val:float):Pattern>) : Pattern Pattern monadic join — for each hap in `param_pat`, builds an inner pattern via `fn(hap.note)` and intersects its haps with the outer hap's part. Core mechanism for patternified parameters. :Arguments: * **param_pat** : :ref:`Pattern ` * **fn** : lambda<(val:float): :ref:`Pattern `> .. _function-strudel_pattern_iter_Pattern_int: .. das:function:: iter(pat: Pattern; n: int) : Pattern Rotates `pat` left by `1/n` cycle each cycle. Example: `pat |> iter(4)` — cycle 0 original, cycle 1 shifted 1/4, etc. :Arguments: * **pat** : :ref:`Pattern ` * **n** : int .. _function-strudel_pattern_iterBack_Pattern_int: .. das:function:: iterBack(pat: Pattern; n: int) : Pattern Like `iter` but rotates `pat` right by `1/n` cycle each cycle. Example: `pat |> iterBack(4)`. :Arguments: * **pat** : :ref:`Pattern ` * **n** : int .. _function-strudel_pattern_jux_Pattern_PatternTransform: .. das:function:: jux(pat: Pattern; transform: PatternTransform) : Pattern Stereo split: original is panned left, `transform(pat)` is panned right. Example: `s("bd sd") |> jux(@@(x) => rev(x))`. :Arguments: * **pat** : :ref:`Pattern ` * **transform** : :ref:`PatternTransform ` .. _function-strudel_pattern_layer_array_ls_Pattern_gr__Pattern: .. das:function:: layer(pats: array; base: Pattern) : Pattern Stacks `pats` on top of `base`, all playing simultaneously. Example: `s("bd") |> layer([s("bd") |> transpose(7.0), s("bd") |> transpose(12.0)])`. :Arguments: * **pats** : array< :ref:`Pattern `> * **base** : :ref:`Pattern ` .. _function-strudel_pattern_linger_Pattern_double: .. das:function:: linger(pat: Pattern; t: double) : Pattern Loops the first `t`-cycle fraction of `pat` to fill each cycle. Example: `pat |> linger(0.25lf)` loops the first quarter. :Arguments: * **pat** : :ref:`Pattern ` * **t** : double .. _function-strudel_pattern_mask_Pattern_Pattern: .. das:function:: mask(pat: Pattern; mask_pat: Pattern) : Pattern Keeps only events from `pat` whose timespan overlaps an event in `mask_pat`. Example: `pat |> mask(s("t t f t"))`. :Arguments: * **pat** : :ref:`Pattern ` * **mask_pat** : :ref:`Pattern ` .. _function-strudel_pattern_off_Pattern_double_PatternTransform: .. das:function:: off(pat: Pattern; time: double; transform: PatternTransform) : Pattern Overlays `pat` with a time-shifted copy transformed by `transform`. Example: `s("bd sd") |> off(0.125, @@(x) => transpose(x, 7.0))` — canon at the fifth. :Arguments: * **pat** : :ref:`Pattern ` * **time** : double * **transform** : :ref:`PatternTransform ` .. _function-strudel_pattern_often_Pattern_PatternTransform: .. das:function:: often(pat: Pattern; transform: PatternTransform) : Pattern Applies `transform` to each event with 75% probability. Shorthand for `sometimesby(pat, 0.75, transform)`. :Arguments: * **pat** : :ref:`Pattern ` * **transform** : :ref:`PatternTransform ` .. _function-strudel_pattern_palindrome_Pattern: .. das:function:: palindrome(pat: Pattern) : Pattern Plays `pat` forward on even cycles, reversed on odd cycles. Example: `s("bd sd cp") |> palindrome()`. :Arguments: * **pat** : :ref:`Pattern ` .. _function-strudel_pattern_ply_Pattern_int: .. das:function:: ply(pat: Pattern; n: int) : Pattern Repeats each event `n` times within its own timespan. Example: `s("bd sd") |> ply(3)` plays each hit as a triplet. :Arguments: * **pat** : :ref:`Pattern ` * **n** : int .. _function-strudel_pattern_randcat_array_ls_Pattern_gr_: .. das:function:: randcat(pats: array) : Pattern Alias for `choose` — randomly picks one pattern per cycle. :Arguments: * **pats** : array< :ref:`Pattern `> .. _function-strudel_pattern_rev_Pattern: .. das:function:: rev(pat: Pattern) : Pattern Reverses event positions within each cycle. Example: `s("bd sd cp") |> rev()` plays `cp sd bd`. :Arguments: * **pat** : :ref:`Pattern ` .. _function-strudel_pattern_scramble_Pattern_int: .. das:function:: scramble(pat: Pattern; n: int) : Pattern Like `shuffle` but with replacement — each of the `n` slots independently picks a random subdivision. Example: `pat |> scramble(8)`. :Arguments: * **pat** : :ref:`Pattern ` * **n** : int .. _function-strudel_pattern_shuffle_Pattern_int: .. das:function:: shuffle(pat: Pattern; n: int) : Pattern Randomly permutes `n` equal subdivisions of each cycle (Fisher-Yates, deterministic per cycle). Example: `pat |> shuffle(4)`. :Arguments: * **pat** : :ref:`Pattern ` * **n** : int .. _function-strudel_pattern_sometimes_Pattern_PatternTransform: .. das:function:: sometimes(pat: Pattern; transform: PatternTransform) : Pattern Applies `transform` to each event with 50% probability. Shorthand for `sometimesby(pat, 0.5, transform)`. :Arguments: * **pat** : :ref:`Pattern ` * **transform** : :ref:`PatternTransform ` .. _function-strudel_pattern_sometimesby_Pattern_float_PatternTransform: .. das:function:: sometimesby(pat: Pattern; prob: float; transform: PatternTransform) : Pattern Applies `transform` to each event with probability `prob` (0..1). Example: `s("bd*8") |> sometimesby(0.3, @@(x) => fast(x, 2.0lf))`. :Arguments: * **pat** : :ref:`Pattern ` * **prob** : float * **transform** : :ref:`PatternTransform ` .. _function-strudel_pattern_striate_Pattern_int: .. das:function:: striate(pat: Pattern; n: int) : Pattern Cuts each sample into `n` slices and plays them in sequence. Slice `i` gets `begin=i/n`, `end=(i+1)/n`. Example: `pat |> striate(4)`. :Arguments: * **pat** : :ref:`Pattern ` * **n** : int .. _function-strudel_pattern_struct__Pattern_Pattern: .. das:function:: struct_(pat: Pattern; bool_pat: Pattern) : Pattern Restructures `pat` to the rhythmic positions of `bool_pat`'s truthy haps — values come from `pat`, timing from the mask. Example: `pat |> struct_(s("t f t t"))`. :Arguments: * **pat** : :ref:`Pattern ` * **bool_pat** : :ref:`Pattern ` .. _function-strudel_pattern_stut_Pattern_int_float_double: .. das:function:: stut(pat: Pattern; times: int; feedback: float; time: double) : Pattern Alias for `echo` with argument order `(times, feedback, time)`. Example: `pat |> stut(3, 0.5, 0.125lf)`. :Arguments: * **pat** : :ref:`Pattern ` * **times** : int * **feedback** : float * **time** : double .. _function-strudel_pattern_superimpose_Pattern_PatternTransform: .. das:function:: superimpose(pat: Pattern; transform: PatternTransform) : Pattern Stacks `pat` with `transform(pat)`, both playing simultaneously. Example: `pat |> superimpose(@@(x) => fast(x, 2.0lf))`. :Arguments: * **pat** : :ref:`Pattern ` * **transform** : :ref:`PatternTransform ` .. _function-strudel_pattern_transpose_Pattern_float: .. das:function:: transpose(pat: Pattern; semitones: float) : Pattern Shifts every event's MIDI note by `semitones`. Example: `pat |> transpose(7.0)` transposes up a fifth. :Arguments: * **pat** : :ref:`Pattern ` * **semitones** : float .. _function-strudel_pattern_wchoose_array_ls_Pattern_gr__array_ls_float_gr_: .. das:function:: wchoose(pats: array; weights: array) : Pattern Weighted random pick from `pats` per cycle using parallel `weights` array. Example: `wchoose([s("bd"), s("cp")], [3.0, 1.0])` — `bd` 75% of the time. :Arguments: * **pats** : array< :ref:`Pattern `> * **weights** : array .. _function-strudel_pattern_when_cycle_Pattern_lambda_ls_cycle_c_int_c_bool_gr__PatternTransform: .. das:function:: when_cycle(pat: Pattern; cond: lambda<(cycle:int):bool>; transform: PatternTransform) : Pattern Applies `transform` to `pat` on cycles where `cond(cycle)` is true, leaving others untouched. Example: `pat |> when_cycle(@(c) => c % 4 == 0, @@(x) => fast(x, 2.0lf))`. :Arguments: * **pat** : :ref:`Pattern ` * **cond** : lambda<(cycle:int):bool> * **transform** : :ref:`PatternTransform ` +++++++++++++++++ Setter primitives +++++++++++++++++ * :ref:`set_attack (var pat: Pattern; a: float) : Pattern ` * :ref:`set_attack (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_begin (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_bpf (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_bpq (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_chorus (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_compressor (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_compressor_attack (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_compressor_knee (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_compressor_ratio (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_compressor_release (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_crush (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_decay (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_decay (var pat: Pattern; d: float) : Pattern ` * :ref:`set_delay (var pat: Pattern; d: float) : Pattern ` * :ref:`set_delay (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_delayfeedback (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_delayfeedback (var pat: Pattern; d: float) : Pattern ` * :ref:`set_delaytime (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_delaytime (var pat: Pattern; d: float) : Pattern ` * :ref:`set_djf (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_end (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_fm (var pat: Pattern; f: float) : Pattern ` * :ref:`set_fm (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_fmh (var pat: Pattern; f: float) : Pattern ` * :ref:`set_fmh (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_gain (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_gain (var pat: Pattern; g: float) : Pattern ` * :ref:`set_hpf (var pat: Pattern; freq: float) : Pattern ` * :ref:`set_hpf (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_hpq (var pat: Pattern; q: float) : Pattern ` * :ref:`set_hpq (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_lpf (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_lpf (var pat: Pattern; freq: float) : Pattern ` * :ref:`set_lpq (var pat: Pattern; q: float) : Pattern ` * :ref:`set_lpq (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_note (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_note (var pat: Pattern; n: float) : Pattern ` * :ref:`set_orbit (var pat: Pattern; o: int) : Pattern ` * :ref:`set_pan (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_pan (var pat: Pattern; p: float) : Pattern ` * :ref:`set_phaser (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_phasercenter (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_phaserdepth (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_phasersweep (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_release (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_release (var pat: Pattern; r: float) : Pattern ` * :ref:`set_room (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_room (var pat: Pattern; r: float) : Pattern ` * :ref:`set_roomsize (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_roomsize (var pat: Pattern; r: float) : Pattern ` * :ref:`set_sf2_expression (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_sf2_mod_wheel (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_sf2_pitch_bend (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_shape (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_sound (var pat: Pattern; snd: string) : Pattern ` * :ref:`set_sound (var pat: Pattern; var sound_pat: Pattern) : Pattern ` * :ref:`set_speed (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_sustain (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_sustain (var pat: Pattern; s: float) : Pattern ` * :ref:`set_tremolo (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_tremolodepth (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`set_velocity (var pat: Pattern; var mod_pat: Pattern) : Pattern ` set_attack ^^^^^^^^^^ .. _function-strudel_pattern_set_attack_Pattern_float: .. das:function:: set_attack(pat: Pattern; a: float) : Pattern Sets the amp-envelope `attack` time (seconds) on every event in `pat`. :Arguments: * **pat** : :ref:`Pattern ` * **a** : float .. _function-strudel_pattern_set_attack_Pattern_Pattern: .. das:function:: set_attack(pat: Pattern; mod_pat: Pattern) : Pattern ---- .. _function-strudel_pattern_set_begin_Pattern_Pattern: .. das:function:: set_begin(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_begin` — samples `mod_pat` at each event onset to set sample start position (0..1). :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_bpf_Pattern_Pattern: .. das:function:: set_bpf(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_bpf` — samples `mod_pat` at each event onset to set band-pass filter cutoff (Hz). :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_bpq_Pattern_Pattern: .. das:function:: set_bpq(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_bpq` — samples `mod_pat` at each event onset to set band-pass filter Q. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_chorus_Pattern_Pattern: .. das:function:: set_chorus(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_chorus` — samples `mod_pat` at each event onset to set chorus send. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_compressor_Pattern_Pattern: .. das:function:: set_compressor(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_compressor` — samples `mod_pat` at each event onset to set compressor threshold (dB). :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_compressor_attack_Pattern_Pattern: .. das:function:: set_compressor_attack(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_compressor_attack` — samples `mod_pat` at each event onset to set compressor attack (seconds). :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_compressor_knee_Pattern_Pattern: .. das:function:: set_compressor_knee(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_compressor_knee` — samples `mod_pat` at each event onset to set compressor knee (dB). :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_compressor_ratio_Pattern_Pattern: .. das:function:: set_compressor_ratio(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_compressor_ratio` — samples `mod_pat` at each event onset to set compressor ratio. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_compressor_release_Pattern_Pattern: .. das:function:: set_compressor_release(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_compressor_release` — samples `mod_pat` at each event onset to set compressor release (seconds). :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_crush_Pattern_Pattern: .. das:function:: set_crush(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_crush` — samples `mod_pat` at each event onset to set bit-crush amount. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` set_decay ^^^^^^^^^ .. _function-strudel_pattern_set_decay_Pattern_Pattern: .. das:function:: set_decay(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_decay` — samples `mod_pat` at each event onset to set envelope `decay`. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_decay_Pattern_float: .. das:function:: set_decay(pat: Pattern; d: float) : Pattern ---- set_delay ^^^^^^^^^ .. _function-strudel_pattern_set_delay_Pattern_float: .. das:function:: set_delay(pat: Pattern; d: float) : Pattern Sets the delay send amount (`delay_amount`, 0..1) on every event in `pat`. :Arguments: * **pat** : :ref:`Pattern ` * **d** : float .. _function-strudel_pattern_set_delay_Pattern_Pattern: .. das:function:: set_delay(pat: Pattern; mod_pat: Pattern) : Pattern ---- set_delayfeedback ^^^^^^^^^^^^^^^^^ .. _function-strudel_pattern_set_delayfeedback_Pattern_Pattern: .. das:function:: set_delayfeedback(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_delayfeedback` — samples `mod_pat` at each event onset to set delay feedback. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_delayfeedback_Pattern_float: .. das:function:: set_delayfeedback(pat: Pattern; d: float) : Pattern ---- set_delaytime ^^^^^^^^^^^^^ .. _function-strudel_pattern_set_delaytime_Pattern_Pattern: .. das:function:: set_delaytime(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_delaytime` — samples `mod_pat` at each event onset to set delay time. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_delaytime_Pattern_float: .. das:function:: set_delaytime(pat: Pattern; d: float) : Pattern ---- .. _function-strudel_pattern_set_djf_Pattern_Pattern: .. das:function:: set_djf(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_djf` — samples `mod_pat` at each event onset to set DJ-filter position (<0.5 = LP, >0.5 = HP). :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_end_Pattern_Pattern: .. das:function:: set_end(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_end` — samples `mod_pat` at each event onset to set sample end position (0..1). :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` set_fm ^^^^^^ .. _function-strudel_pattern_set_fm_Pattern_float: .. das:function:: set_fm(pat: Pattern; f: float) : Pattern Sets the FM modulation depth `fm` (modulator amplitude) on every event in `pat`. :Arguments: * **pat** : :ref:`Pattern ` * **f** : float .. _function-strudel_pattern_set_fm_Pattern_Pattern: .. das:function:: set_fm(pat: Pattern; mod_pat: Pattern) : Pattern ---- set_fmh ^^^^^^^ .. _function-strudel_pattern_set_fmh_Pattern_float: .. das:function:: set_fmh(pat: Pattern; f: float) : Pattern Sets the FM harmonicity ratio `fmh` (modulator frequency / carrier frequency) on every event in `pat`. :Arguments: * **pat** : :ref:`Pattern ` * **f** : float .. _function-strudel_pattern_set_fmh_Pattern_Pattern: .. das:function:: set_fmh(pat: Pattern; mod_pat: Pattern) : Pattern ---- set_gain ^^^^^^^^ .. _function-strudel_pattern_set_gain_Pattern_Pattern: .. das:function:: set_gain(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_gain` — samples `mod_pat` at each event onset to set `gain`. Example: `pat |> set_gain(sine())`. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_gain_Pattern_float: .. das:function:: set_gain(pat: Pattern; g: float) : Pattern ---- set_hpf ^^^^^^^ .. _function-strudel_pattern_set_hpf_Pattern_float: .. das:function:: set_hpf(pat: Pattern; freq: float) : Pattern Sets the high-pass filter cutoff `hpf` (Hz) on every event in `pat`. :Arguments: * **pat** : :ref:`Pattern ` * **freq** : float .. _function-strudel_pattern_set_hpf_Pattern_Pattern: .. das:function:: set_hpf(pat: Pattern; mod_pat: Pattern) : Pattern ---- set_hpq ^^^^^^^ .. _function-strudel_pattern_set_hpq_Pattern_float: .. das:function:: set_hpq(pat: Pattern; q: float) : Pattern Sets the high-pass filter resonance `hpq` (Q factor) on every event in `pat`. :Arguments: * **pat** : :ref:`Pattern ` * **q** : float .. _function-strudel_pattern_set_hpq_Pattern_Pattern: .. das:function:: set_hpq(pat: Pattern; mod_pat: Pattern) : Pattern ---- set_lpf ^^^^^^^ .. _function-strudel_pattern_set_lpf_Pattern_Pattern: .. das:function:: set_lpf(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_lpf` — samples `mod_pat` at each event onset to set `lpf` cutoff. Example: `pat |> set_lpf(sine() |> range(200.0, 4000.0))`. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_lpf_Pattern_float: .. das:function:: set_lpf(pat: Pattern; freq: float) : Pattern ---- set_lpq ^^^^^^^ .. _function-strudel_pattern_set_lpq_Pattern_float: .. das:function:: set_lpq(pat: Pattern; q: float) : Pattern Sets the low-pass filter resonance `lpq` (Q factor) on every event in `pat`. :Arguments: * **pat** : :ref:`Pattern ` * **q** : float .. _function-strudel_pattern_set_lpq_Pattern_Pattern: .. das:function:: set_lpq(pat: Pattern; mod_pat: Pattern) : Pattern ---- set_note ^^^^^^^^ .. _function-strudel_pattern_set_note_Pattern_Pattern: .. das:function:: set_note(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_note` — samples `mod_pat` at each event onset to set `note`. Example: `pat |> set_note(saw() |> range(48.0, 72.0))`. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_note_Pattern_float: .. das:function:: set_note(pat: Pattern; n: float) : Pattern ---- .. _function-strudel_pattern_set_orbit_Pattern_int: .. das:function:: set_orbit(pat: Pattern; o: int) : Pattern Sets the effect-bus routing index `orbit` on every event in `pat`. Different orbits have independent FX chains. :Arguments: * **pat** : :ref:`Pattern ` * **o** : int set_pan ^^^^^^^ .. _function-strudel_pattern_set_pan_Pattern_Pattern: .. das:function:: set_pan(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_pan` — samples `mod_pat` at each event onset to set `pan`. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_pan_Pattern_float: .. das:function:: set_pan(pat: Pattern; p: float) : Pattern ---- .. _function-strudel_pattern_set_phaser_Pattern_Pattern: .. das:function:: set_phaser(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_phaser` — samples `mod_pat` at each event onset to set phaser rate (Hz). :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_phasercenter_Pattern_Pattern: .. das:function:: set_phasercenter(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_phasercenter` — samples `mod_pat` at each event onset to set phaser center frequency. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_phaserdepth_Pattern_Pattern: .. das:function:: set_phaserdepth(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_phaserdepth` — samples `mod_pat` at each event onset to set phaser depth. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_phasersweep_Pattern_Pattern: .. das:function:: set_phasersweep(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_phasersweep` — samples `mod_pat` at each event onset to set phaser sweep range. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` set_release ^^^^^^^^^^^ .. _function-strudel_pattern_set_release_Pattern_Pattern: .. das:function:: set_release(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_release` — samples `mod_pat` at each event onset to set envelope `release`. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_release_Pattern_float: .. das:function:: set_release(pat: Pattern; r: float) : Pattern ---- set_room ^^^^^^^^ .. _function-strudel_pattern_set_room_Pattern_Pattern: .. das:function:: set_room(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_room` — samples `mod_pat` at each event onset to set reverb send amount. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_room_Pattern_float: .. das:function:: set_room(pat: Pattern; r: float) : Pattern ---- set_roomsize ^^^^^^^^^^^^ .. _function-strudel_pattern_set_roomsize_Pattern_Pattern: .. das:function:: set_roomsize(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_roomsize` — samples `mod_pat` at each event onset to set reverb `roomsize`. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_roomsize_Pattern_float: .. das:function:: set_roomsize(pat: Pattern; r: float) : Pattern ---- .. _function-strudel_pattern_set_sf2_expression_Pattern_Pattern: .. das:function:: set_sf2_expression(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_sf2_expression` — samples `mod_pat` at each event onset to set SF2 expression CC11. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_sf2_mod_wheel_Pattern_Pattern: .. das:function:: set_sf2_mod_wheel(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_sf2_mod_wheel` — samples `mod_pat` at each event onset to set SF2 mod wheel CC1. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_sf2_pitch_bend_Pattern_Pattern: .. das:function:: set_sf2_pitch_bend(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_sf2_pitch_bend` — samples `mod_pat` at each event onset to set SF2 pitch bend. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_shape_Pattern_Pattern: .. das:function:: set_shape(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_shape` — samples `mod_pat` at each event onset to set waveshape/distortion amount. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` set_sound ^^^^^^^^^ .. _function-strudel_pattern_set_sound_Pattern_string: .. das:function:: set_sound(pat: Pattern; snd: string) : Pattern Sets the sound name `s` on every event in `pat`. Example: `pat |> set_sound("sawtooth")`. :Arguments: * **pat** : :ref:`Pattern ` * **snd** : string .. _function-strudel_pattern_set_sound_Pattern_Pattern: .. das:function:: set_sound(pat: Pattern; sound_pat: Pattern) : Pattern ---- .. _function-strudel_pattern_set_speed_Pattern_Pattern: .. das:function:: set_speed(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_speed` — samples `mod_pat` at each event onset to set sample playback `speed`. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` set_sustain ^^^^^^^^^^^ .. _function-strudel_pattern_set_sustain_Pattern_Pattern: .. das:function:: set_sustain(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_sustain` — samples `mod_pat` at each event onset to set envelope `sustain`. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_sustain_Pattern_float: .. das:function:: set_sustain(pat: Pattern; s: float) : Pattern ---- .. _function-strudel_pattern_set_tremolo_Pattern_Pattern: .. das:function:: set_tremolo(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_tremolo` — samples `mod_pat` at each event onset to set tremolo rate (Hz). :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_tremolodepth_Pattern_Pattern: .. das:function:: set_tremolodepth(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_tremolodepth` — samples `mod_pat` at each event onset to set tremolo depth. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_set_velocity_Pattern_Pattern: .. das:function:: set_velocity(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-valued `set_velocity` — samples `mod_pat` at each event onset to set `velocity`. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` ++++++++++++++++++++++++++++++++++++ Fluent control: dynamics and routing ++++++++++++++++++++++++++++++++++++ * :ref:`begin (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`begin (var pat: Pattern; b: float) : Pattern ` * :ref:`cut (var pat: Pattern; c: int) : Pattern ` * :ref:`end_pos (var pat: Pattern; e_val: float) : Pattern ` * :ref:`end_pos (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`gain (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`gain (var pat: Pattern; g: float) : Pattern ` * :ref:`note (var pat: Pattern; n: float) : Pattern ` * :ref:`note (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`orbit (var pat: Pattern; o: int) : Pattern ` * :ref:`pan (var pat: Pattern; p: float) : Pattern ` * :ref:`pan (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`sound (var pat: Pattern; snd: string) : Pattern ` * :ref:`sound (var pat: Pattern; var sound_pat: Pattern) : Pattern ` * :ref:`speed (var pat: Pattern; spd: float) : Pattern ` * :ref:`speed (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`vel (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`vel (var pat: Pattern; v: float) : Pattern ` * :ref:`velocity (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`velocity (var pat: Pattern; v: float) : Pattern ` begin ^^^^^ .. _function-strudel_pattern_begin_Pattern_Pattern: .. das:function:: begin(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated sample `begin` — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_begin_Pattern_float: .. das:function:: begin(pat: Pattern; b: float) : Pattern ---- .. _function-strudel_pattern_cut_Pattern_int: .. das:function:: cut(pat: Pattern; c: int) : Pattern Fluent shorthand for `set_cut`. Sets the cut group (new voice kills previous in same group). :Arguments: * **pat** : :ref:`Pattern ` * **c** : int end_pos ^^^^^^^ .. _function-strudel_pattern_end_pos_Pattern_float: .. das:function:: end_pos(pat: Pattern; e_val: float) : Pattern Fluent shorthand for `set_end`. Sets sample end position (0..1). :Arguments: * **pat** : :ref:`Pattern ` * **e_val** : float .. _function-strudel_pattern_end_pos_Pattern_Pattern: .. das:function:: end_pos(pat: Pattern; mod_pat: Pattern) : Pattern ---- gain ^^^^ .. _function-strudel_pattern_gain_Pattern_Pattern: .. das:function:: gain(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated `gain` — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_gain_Pattern_float: .. das:function:: gain(pat: Pattern; g: float) : Pattern ---- note ^^^^ .. _function-strudel_pattern_note_Pattern_float: .. das:function:: note(pat: Pattern; n: float) : Pattern Fluent shorthand for `set_note`. Sets MIDI note number on every event. :Arguments: * **pat** : :ref:`Pattern ` * **n** : float .. _function-strudel_pattern_note_Pattern_Pattern: .. das:function:: note(pat: Pattern; mod_pat: Pattern) : Pattern ---- .. _function-strudel_pattern_orbit_Pattern_int: .. das:function:: orbit(pat: Pattern; o: int) : Pattern Fluent shorthand for `set_orbit`. Sets the effect-bus routing index. :Arguments: * **pat** : :ref:`Pattern ` * **o** : int pan ^^^ .. _function-strudel_pattern_pan_Pattern_float: .. das:function:: pan(pat: Pattern; p: float) : Pattern Fluent shorthand for `set_pan`. Sets stereo position (0=L, 0.5=C, 1=R). :Arguments: * **pat** : :ref:`Pattern ` * **p** : float .. _function-strudel_pattern_pan_Pattern_Pattern: .. das:function:: pan(pat: Pattern; mod_pat: Pattern) : Pattern ---- sound ^^^^^ .. _function-strudel_pattern_sound_Pattern_string: .. das:function:: sound(pat: Pattern; snd: string) : Pattern Fluent shorthand for `set_sound`. Sets the sound name. :Arguments: * **pat** : :ref:`Pattern ` * **snd** : string .. _function-strudel_pattern_sound_Pattern_Pattern: .. das:function:: sound(pat: Pattern; sound_pat: Pattern) : Pattern ---- speed ^^^^^ .. _function-strudel_pattern_speed_Pattern_float: .. das:function:: speed(pat: Pattern; spd: float) : Pattern Fluent shorthand for `set_speed`. Sets sample playback speed. :Arguments: * **pat** : :ref:`Pattern ` * **spd** : float .. _function-strudel_pattern_speed_Pattern_Pattern: .. das:function:: speed(pat: Pattern; mod_pat: Pattern) : Pattern ---- vel ^^^ .. _function-strudel_pattern_vel_Pattern_Pattern: .. das:function:: vel(pat: Pattern; mod_pat: Pattern) : Pattern Alias for pattern-modulated `velocity`. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_vel_Pattern_float: .. das:function:: vel(pat: Pattern; v: float) : Pattern ---- velocity ^^^^^^^^ .. _function-strudel_pattern_velocity_Pattern_Pattern: .. das:function:: velocity(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated `velocity` — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_velocity_Pattern_float: .. das:function:: velocity(pat: Pattern; v: float) : Pattern +++++++++++++++++++++++++++++ Fluent control: effects sends +++++++++++++++++++++++++++++ * :ref:`chorus (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`chorus (var pat: Pattern; c: float) : Pattern ` * :ref:`delay (var pat: Pattern; d: float) : Pattern ` * :ref:`delay (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`delayfeedback (var pat: Pattern; d: float) : Pattern ` * :ref:`delayfeedback (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`delaysync (var pat: Pattern; d: float) : Pattern ` * :ref:`delaytime (var pat: Pattern; d: float) : Pattern ` * :ref:`delaytime (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`dfb (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`dfb (var pat: Pattern; d: float) : Pattern ` * :ref:`dt (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`dt (var pat: Pattern; d: float) : Pattern ` * :ref:`room (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`room (var pat: Pattern; r: float) : Pattern ` * :ref:`roomsize (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`roomsize (var pat: Pattern; r: float) : Pattern ` * :ref:`size (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`size (var pat: Pattern; r: float) : Pattern ` chorus ^^^^^^ .. _function-strudel_pattern_chorus_Pattern_Pattern: .. das:function:: chorus(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated chorus send — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_chorus_Pattern_float: .. das:function:: chorus(pat: Pattern; c: float) : Pattern ---- delay ^^^^^ .. _function-strudel_pattern_delay_Pattern_float: .. das:function:: delay(pat: Pattern; d: float) : Pattern Fluent shorthand for `set_delay`. Sets delay send amount (0..1). :Arguments: * **pat** : :ref:`Pattern ` * **d** : float .. _function-strudel_pattern_delay_Pattern_Pattern: .. das:function:: delay(pat: Pattern; mod_pat: Pattern) : Pattern ---- delayfeedback ^^^^^^^^^^^^^ .. _function-strudel_pattern_delayfeedback_Pattern_float: .. das:function:: delayfeedback(pat: Pattern; d: float) : Pattern Fluent shorthand for `set_delayfeedback`. Sets delay feedback (0..<1). :Arguments: * **pat** : :ref:`Pattern ` * **d** : float .. _function-strudel_pattern_delayfeedback_Pattern_Pattern: .. das:function:: delayfeedback(pat: Pattern; mod_pat: Pattern) : Pattern ---- .. _function-strudel_pattern_delaysync_Pattern_float: .. das:function:: delaysync(pat: Pattern; d: float) : Pattern Fluent shorthand for `set_delaysync`. Sets delay time in cycles (tempo-synced delay). :Arguments: * **pat** : :ref:`Pattern ` * **d** : float delaytime ^^^^^^^^^ .. _function-strudel_pattern_delaytime_Pattern_float: .. das:function:: delaytime(pat: Pattern; d: float) : Pattern Fluent shorthand for `set_delaytime`. Sets delay time in seconds. :Arguments: * **pat** : :ref:`Pattern ` * **d** : float .. _function-strudel_pattern_delaytime_Pattern_Pattern: .. das:function:: delaytime(pat: Pattern; mod_pat: Pattern) : Pattern ---- dfb ^^^ .. _function-strudel_pattern_dfb_Pattern_Pattern: .. das:function:: dfb(pat: Pattern; mod_pat: Pattern) : Pattern Alias for pattern-modulated `delayfeedback`. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_dfb_Pattern_float: .. das:function:: dfb(pat: Pattern; d: float) : Pattern ---- dt ^^ .. _function-strudel_pattern_dt_Pattern_Pattern: .. das:function:: dt(pat: Pattern; mod_pat: Pattern) : Pattern Alias for pattern-modulated `delaytime`. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_dt_Pattern_float: .. das:function:: dt(pat: Pattern; d: float) : Pattern ---- room ^^^^ .. _function-strudel_pattern_room_Pattern_Pattern: .. das:function:: room(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated `room` — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_room_Pattern_float: .. das:function:: room(pat: Pattern; r: float) : Pattern ---- roomsize ^^^^^^^^ .. _function-strudel_pattern_roomsize_Pattern_Pattern: .. das:function:: roomsize(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated `roomsize` — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_roomsize_Pattern_float: .. das:function:: roomsize(pat: Pattern; r: float) : Pattern ---- size ^^^^ .. _function-strudel_pattern_size_Pattern_Pattern: .. das:function:: size(pat: Pattern; mod_pat: Pattern) : Pattern Alias for pattern-modulated `roomsize`. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_size_Pattern_float: .. das:function:: size(pat: Pattern; r: float) : Pattern +++++++++++++++++++++++ Fluent control: filters +++++++++++++++++++++++ * :ref:`bpf (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`bpf (var pat: Pattern; freq: float) : Pattern ` * :ref:`bpq (var pat: Pattern; q: float) : Pattern ` * :ref:`bpq (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`djf (var pat: Pattern; d: float) : Pattern ` * :ref:`djf (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`hp (var pat: Pattern; freq: float) : Pattern ` * :ref:`hp (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`hpf (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`hpf (var pat: Pattern; freq: float) : Pattern ` * :ref:`hpq (var pat: Pattern; q: float) : Pattern ` * :ref:`hpq (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`lp (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`lp (var pat: Pattern; freq: float) : Pattern ` * :ref:`lpf (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`lpf (var pat: Pattern; freq: float) : Pattern ` * :ref:`lpq (var pat: Pattern; q: float) : Pattern ` * :ref:`lpq (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`resonance (var pat: Pattern; q: float) : Pattern ` * :ref:`resonance (var pat: Pattern; var mod_pat: Pattern) : Pattern ` bpf ^^^ .. _function-strudel_pattern_bpf_Pattern_Pattern: .. das:function:: bpf(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated band-pass cutoff `bpf` — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_bpf_Pattern_float: .. das:function:: bpf(pat: Pattern; freq: float) : Pattern ---- bpq ^^^ .. _function-strudel_pattern_bpq_Pattern_float: .. das:function:: bpq(pat: Pattern; q: float) : Pattern Fluent shorthand for `set_bpq`. Sets band-pass filter Q. :Arguments: * **pat** : :ref:`Pattern ` * **q** : float .. _function-strudel_pattern_bpq_Pattern_Pattern: .. das:function:: bpq(pat: Pattern; mod_pat: Pattern) : Pattern ---- djf ^^^ .. _function-strudel_pattern_djf_Pattern_float: .. das:function:: djf(pat: Pattern; d: float) : Pattern Fluent shorthand for `set_djf`. Sets DJ-filter position (<0.5 = LP, >0.5 = HP). :Arguments: * **pat** : :ref:`Pattern ` * **d** : float .. _function-strudel_pattern_djf_Pattern_Pattern: .. das:function:: djf(pat: Pattern; mod_pat: Pattern) : Pattern ---- hp ^^ .. _function-strudel_pattern_hp_Pattern_float: .. das:function:: hp(pat: Pattern; freq: float) : Pattern Alias for `hpf`. :Arguments: * **pat** : :ref:`Pattern ` * **freq** : float .. _function-strudel_pattern_hp_Pattern_Pattern: .. das:function:: hp(pat: Pattern; mod_pat: Pattern) : Pattern ---- hpf ^^^ .. _function-strudel_pattern_hpf_Pattern_Pattern: .. das:function:: hpf(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated `hpf` cutoff — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_hpf_Pattern_float: .. das:function:: hpf(pat: Pattern; freq: float) : Pattern ---- hpq ^^^ .. _function-strudel_pattern_hpq_Pattern_float: .. das:function:: hpq(pat: Pattern; q: float) : Pattern Fluent shorthand for `set_hpq`. Sets high-pass filter resonance. :Arguments: * **pat** : :ref:`Pattern ` * **q** : float .. _function-strudel_pattern_hpq_Pattern_Pattern: .. das:function:: hpq(pat: Pattern; mod_pat: Pattern) : Pattern ---- lp ^^ .. _function-strudel_pattern_lp_Pattern_Pattern: .. das:function:: lp(pat: Pattern; mod_pat: Pattern) : Pattern Alias for pattern-modulated `lpf`. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_lp_Pattern_float: .. das:function:: lp(pat: Pattern; freq: float) : Pattern ---- lpf ^^^ .. _function-strudel_pattern_lpf_Pattern_Pattern: .. das:function:: lpf(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated `lpf` cutoff — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_lpf_Pattern_float: .. das:function:: lpf(pat: Pattern; freq: float) : Pattern ---- lpq ^^^ .. _function-strudel_pattern_lpq_Pattern_float: .. das:function:: lpq(pat: Pattern; q: float) : Pattern Fluent shorthand for `set_lpq`. Sets low-pass filter resonance. :Arguments: * **pat** : :ref:`Pattern ` * **q** : float .. _function-strudel_pattern_lpq_Pattern_Pattern: .. das:function:: lpq(pat: Pattern; mod_pat: Pattern) : Pattern ---- resonance ^^^^^^^^^ .. _function-strudel_pattern_resonance_Pattern_float: .. das:function:: resonance(pat: Pattern; q: float) : Pattern Alias for `lpq`. :Arguments: * **pat** : :ref:`Pattern ` * **q** : float .. _function-strudel_pattern_resonance_Pattern_Pattern: .. das:function:: resonance(pat: Pattern; mod_pat: Pattern) : Pattern ++++++++++++++++++++++++ Fluent control: envelope ++++++++++++++++++++++++ * :ref:`att (var pat: Pattern; a: float) : Pattern ` * :ref:`att (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`attack (var pat: Pattern; a: float) : Pattern ` * :ref:`attack (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`dec (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`dec (var pat: Pattern; d: float) : Pattern ` * :ref:`decay (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`decay (var pat: Pattern; d: float) : Pattern ` * :ref:`rel (var pat: Pattern; r: float) : Pattern ` * :ref:`rel (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`release (var pat: Pattern; r: float) : Pattern ` * :ref:`release (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`sus (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`sus (var pat: Pattern; s: float) : Pattern ` * :ref:`sustain (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`sustain (var pat: Pattern; s: float) : Pattern ` att ^^^ .. _function-strudel_pattern_att_Pattern_float: .. das:function:: att(pat: Pattern; a: float) : Pattern Alias for `attack`. :Arguments: * **pat** : :ref:`Pattern ` * **a** : float .. _function-strudel_pattern_att_Pattern_Pattern: .. das:function:: att(pat: Pattern; mod_pat: Pattern) : Pattern ---- attack ^^^^^^ .. _function-strudel_pattern_attack_Pattern_float: .. das:function:: attack(pat: Pattern; a: float) : Pattern Fluent shorthand for `set_attack`. Sets envelope attack (seconds). :Arguments: * **pat** : :ref:`Pattern ` * **a** : float .. _function-strudel_pattern_attack_Pattern_Pattern: .. das:function:: attack(pat: Pattern; mod_pat: Pattern) : Pattern ---- dec ^^^ .. _function-strudel_pattern_dec_Pattern_Pattern: .. das:function:: dec(pat: Pattern; mod_pat: Pattern) : Pattern Alias for pattern-modulated `decay`. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_dec_Pattern_float: .. das:function:: dec(pat: Pattern; d: float) : Pattern ---- decay ^^^^^ .. _function-strudel_pattern_decay_Pattern_Pattern: .. das:function:: decay(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated envelope `decay` — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_decay_Pattern_float: .. das:function:: decay(pat: Pattern; d: float) : Pattern ---- rel ^^^ .. _function-strudel_pattern_rel_Pattern_float: .. das:function:: rel(pat: Pattern; r: float) : Pattern Alias for `release`. :Arguments: * **pat** : :ref:`Pattern ` * **r** : float .. _function-strudel_pattern_rel_Pattern_Pattern: .. das:function:: rel(pat: Pattern; mod_pat: Pattern) : Pattern ---- release ^^^^^^^ .. _function-strudel_pattern_release_Pattern_float: .. das:function:: release(pat: Pattern; r: float) : Pattern Fluent shorthand for `set_release`. Sets envelope release (seconds). :Arguments: * **pat** : :ref:`Pattern ` * **r** : float .. _function-strudel_pattern_release_Pattern_Pattern: .. das:function:: release(pat: Pattern; mod_pat: Pattern) : Pattern ---- sus ^^^ .. _function-strudel_pattern_sus_Pattern_Pattern: .. das:function:: sus(pat: Pattern; mod_pat: Pattern) : Pattern Alias for pattern-modulated `sustain`. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_sus_Pattern_float: .. das:function:: sus(pat: Pattern; s: float) : Pattern ---- sustain ^^^^^^^ .. _function-strudel_pattern_sustain_Pattern_Pattern: .. das:function:: sustain(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated envelope `sustain` — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_sustain_Pattern_float: .. das:function:: sustain(pat: Pattern; s: float) : Pattern +++++++++++++++++++++++++++++++++++++ Fluent control: synthesis and shaping +++++++++++++++++++++++++++++++++++++ * :ref:`coarse (var pat: Pattern; c: int) : Pattern ` * :ref:`crush (var pat: Pattern; c: float) : Pattern ` * :ref:`crush (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`fm (var pat: Pattern; f: float) : Pattern ` * :ref:`fm (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`fmh (var pat: Pattern; f: float) : Pattern ` * :ref:`fmh (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`shape (var pat: Pattern; s: float) : Pattern ` * :ref:`shape (var pat: Pattern; var mod_pat: Pattern) : Pattern ` .. _function-strudel_pattern_coarse_Pattern_int: .. das:function:: coarse(pat: Pattern; c: int) : Pattern Fluent shorthand for `set_coarse`. Sets sample-rate reduction factor. :Arguments: * **pat** : :ref:`Pattern ` * **c** : int crush ^^^^^ .. _function-strudel_pattern_crush_Pattern_float: .. das:function:: crush(pat: Pattern; c: float) : Pattern Fluent shorthand for `set_crush`. Sets bit-crush amount. :Arguments: * **pat** : :ref:`Pattern ` * **c** : float .. _function-strudel_pattern_crush_Pattern_Pattern: .. das:function:: crush(pat: Pattern; mod_pat: Pattern) : Pattern ---- fm ^^ .. _function-strudel_pattern_fm_Pattern_float: .. das:function:: fm(pat: Pattern; f: float) : Pattern Fluent shorthand for `set_fm`. Sets FM modulation depth. :Arguments: * **pat** : :ref:`Pattern ` * **f** : float .. _function-strudel_pattern_fm_Pattern_Pattern: .. das:function:: fm(pat: Pattern; mod_pat: Pattern) : Pattern ---- fmh ^^^ .. _function-strudel_pattern_fmh_Pattern_float: .. das:function:: fmh(pat: Pattern; f: float) : Pattern Fluent shorthand for `set_fmh`. Sets FM harmonicity ratio. :Arguments: * **pat** : :ref:`Pattern ` * **f** : float .. _function-strudel_pattern_fmh_Pattern_Pattern: .. das:function:: fmh(pat: Pattern; mod_pat: Pattern) : Pattern ---- shape ^^^^^ .. _function-strudel_pattern_shape_Pattern_float: .. das:function:: shape(pat: Pattern; s: float) : Pattern Fluent shorthand for `set_shape`. Sets waveshape/distortion amount. :Arguments: * **pat** : :ref:`Pattern ` * **s** : float .. _function-strudel_pattern_shape_Pattern_Pattern: .. das:function:: shape(pat: Pattern; mod_pat: Pattern) : Pattern +++++++++++++++++++++++++++++ Fluent control: modulation FX +++++++++++++++++++++++++++++ * :ref:`compressor (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`compressor (var pat: Pattern; thr_db: float) : Pattern ` * :ref:`compressorAttack (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`compressorAttack (var pat: Pattern; a: float) : Pattern ` * :ref:`compressorKnee (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`compressorKnee (var pat: Pattern; k: float) : Pattern ` * :ref:`compressorRatio (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`compressorRatio (var pat: Pattern; r: float) : Pattern ` * :ref:`compressorRelease (var pat: Pattern; r: float) : Pattern ` * :ref:`compressorRelease (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`compressor_attack (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`compressor_attack (var pat: Pattern; a: float) : Pattern ` * :ref:`compressor_knee (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`compressor_knee (var pat: Pattern; k: float) : Pattern ` * :ref:`compressor_ratio (var pat: Pattern; r: float) : Pattern ` * :ref:`compressor_ratio (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`compressor_release (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`compressor_release (var pat: Pattern; r: float) : Pattern ` * :ref:`ph (var pat: Pattern; r: float) : Pattern ` * :ref:`ph (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`phaser (var pat: Pattern; r: float) : Pattern ` * :ref:`phaser (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`phasercenter (var pat: Pattern; c: float) : Pattern ` * :ref:`phasercenter (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`phaserdepth (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`phaserdepth (var pat: Pattern; d: float) : Pattern ` * :ref:`phasersweep (var pat: Pattern; s: float) : Pattern ` * :ref:`phasersweep (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`phc (var pat: Pattern; c: float) : Pattern ` * :ref:`phc (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`phd (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`phd (var pat: Pattern; d: float) : Pattern ` * :ref:`phs (var pat: Pattern; s: float) : Pattern ` * :ref:`phs (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`trem (var pat: Pattern; r: float) : Pattern ` * :ref:`trem (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`tremdepth (var pat: Pattern; d: float) : Pattern ` * :ref:`tremdepth (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`tremolo (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`tremolo (var pat: Pattern; r: float) : Pattern ` * :ref:`tremolodepth (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`tremolodepth (var pat: Pattern; d: float) : Pattern ` compressor ^^^^^^^^^^ .. _function-strudel_pattern_compressor_Pattern_Pattern: .. das:function:: compressor(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated compressor threshold — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_compressor_Pattern_float: .. das:function:: compressor(pat: Pattern; thr_db: float) : Pattern ---- compressorAttack ^^^^^^^^^^^^^^^^ .. _function-strudel_pattern_compressorAttack_Pattern_Pattern: .. das:function:: compressorAttack(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated compressor attack (camelCase) — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_compressorAttack_Pattern_float: .. das:function:: compressorAttack(pat: Pattern; a: float) : Pattern ---- compressorKnee ^^^^^^^^^^^^^^ .. _function-strudel_pattern_compressorKnee_Pattern_Pattern: .. das:function:: compressorKnee(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated compressor knee (camelCase) — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_compressorKnee_Pattern_float: .. das:function:: compressorKnee(pat: Pattern; k: float) : Pattern ---- compressorRatio ^^^^^^^^^^^^^^^ .. _function-strudel_pattern_compressorRatio_Pattern_Pattern: .. das:function:: compressorRatio(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated compressor ratio (camelCase) — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_compressorRatio_Pattern_float: .. das:function:: compressorRatio(pat: Pattern; r: float) : Pattern ---- compressorRelease ^^^^^^^^^^^^^^^^^ .. _function-strudel_pattern_compressorRelease_Pattern_float: .. das:function:: compressorRelease(pat: Pattern; r: float) : Pattern camelCase fluent shorthand for `set_compressor_release`. Sets compressor release (seconds). :Arguments: * **pat** : :ref:`Pattern ` * **r** : float .. _function-strudel_pattern_compressorRelease_Pattern_Pattern: .. das:function:: compressorRelease(pat: Pattern; mod_pat: Pattern) : Pattern ---- compressor_attack ^^^^^^^^^^^^^^^^^ .. _function-strudel_pattern_compressor_attack_Pattern_Pattern: .. das:function:: compressor_attack(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated compressor attack (snake_case) — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_compressor_attack_Pattern_float: .. das:function:: compressor_attack(pat: Pattern; a: float) : Pattern ---- compressor_knee ^^^^^^^^^^^^^^^ .. _function-strudel_pattern_compressor_knee_Pattern_Pattern: .. das:function:: compressor_knee(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated compressor knee (snake_case) — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_compressor_knee_Pattern_float: .. das:function:: compressor_knee(pat: Pattern; k: float) : Pattern ---- compressor_ratio ^^^^^^^^^^^^^^^^ .. _function-strudel_pattern_compressor_ratio_Pattern_float: .. das:function:: compressor_ratio(pat: Pattern; r: float) : Pattern snake_case fluent shorthand for `set_compressor_ratio`. Sets compressor ratio. :Arguments: * **pat** : :ref:`Pattern ` * **r** : float .. _function-strudel_pattern_compressor_ratio_Pattern_Pattern: .. das:function:: compressor_ratio(pat: Pattern; mod_pat: Pattern) : Pattern ---- compressor_release ^^^^^^^^^^^^^^^^^^ .. _function-strudel_pattern_compressor_release_Pattern_Pattern: .. das:function:: compressor_release(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated compressor release (snake_case) — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_compressor_release_Pattern_float: .. das:function:: compressor_release(pat: Pattern; r: float) : Pattern ---- ph ^^ .. _function-strudel_pattern_ph_Pattern_float: .. das:function:: ph(pat: Pattern; r: float) : Pattern Alias for `phaser`. :Arguments: * **pat** : :ref:`Pattern ` * **r** : float .. _function-strudel_pattern_ph_Pattern_Pattern: .. das:function:: ph(pat: Pattern; mod_pat: Pattern) : Pattern ---- phaser ^^^^^^ .. _function-strudel_pattern_phaser_Pattern_float: .. das:function:: phaser(pat: Pattern; r: float) : Pattern Fluent shorthand for `set_phaser`. Sets phaser rate in Hz (0 disables). :Arguments: * **pat** : :ref:`Pattern ` * **r** : float .. _function-strudel_pattern_phaser_Pattern_Pattern: .. das:function:: phaser(pat: Pattern; mod_pat: Pattern) : Pattern ---- phasercenter ^^^^^^^^^^^^ .. _function-strudel_pattern_phasercenter_Pattern_float: .. das:function:: phasercenter(pat: Pattern; c: float) : Pattern Fluent shorthand for `set_phasercenter`. Sets phaser center frequency. :Arguments: * **pat** : :ref:`Pattern ` * **c** : float .. _function-strudel_pattern_phasercenter_Pattern_Pattern: .. das:function:: phasercenter(pat: Pattern; mod_pat: Pattern) : Pattern ---- phaserdepth ^^^^^^^^^^^ .. _function-strudel_pattern_phaserdepth_Pattern_Pattern: .. das:function:: phaserdepth(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated phaser depth — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_phaserdepth_Pattern_float: .. das:function:: phaserdepth(pat: Pattern; d: float) : Pattern ---- phasersweep ^^^^^^^^^^^ .. _function-strudel_pattern_phasersweep_Pattern_float: .. das:function:: phasersweep(pat: Pattern; s: float) : Pattern Fluent shorthand for `set_phasersweep`. Sets phaser sweep range. :Arguments: * **pat** : :ref:`Pattern ` * **s** : float .. _function-strudel_pattern_phasersweep_Pattern_Pattern: .. das:function:: phasersweep(pat: Pattern; mod_pat: Pattern) : Pattern ---- phc ^^^ .. _function-strudel_pattern_phc_Pattern_float: .. das:function:: phc(pat: Pattern; c: float) : Pattern Alias for `phasercenter`. :Arguments: * **pat** : :ref:`Pattern ` * **c** : float .. _function-strudel_pattern_phc_Pattern_Pattern: .. das:function:: phc(pat: Pattern; mod_pat: Pattern) : Pattern ---- phd ^^^ .. _function-strudel_pattern_phd_Pattern_Pattern: .. das:function:: phd(pat: Pattern; mod_pat: Pattern) : Pattern Alias for pattern-modulated `phaserdepth`. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_phd_Pattern_float: .. das:function:: phd(pat: Pattern; d: float) : Pattern ---- phs ^^^ .. _function-strudel_pattern_phs_Pattern_float: .. das:function:: phs(pat: Pattern; s: float) : Pattern Alias for `phasersweep`. :Arguments: * **pat** : :ref:`Pattern ` * **s** : float .. _function-strudel_pattern_phs_Pattern_Pattern: .. das:function:: phs(pat: Pattern; mod_pat: Pattern) : Pattern ---- trem ^^^^ .. _function-strudel_pattern_trem_Pattern_float: .. das:function:: trem(pat: Pattern; r: float) : Pattern Alias for `tremolo`. :Arguments: * **pat** : :ref:`Pattern ` * **r** : float .. _function-strudel_pattern_trem_Pattern_Pattern: .. das:function:: trem(pat: Pattern; mod_pat: Pattern) : Pattern ---- tremdepth ^^^^^^^^^ .. _function-strudel_pattern_tremdepth_Pattern_float: .. das:function:: tremdepth(pat: Pattern; d: float) : Pattern Alias for `tremolodepth`. :Arguments: * **pat** : :ref:`Pattern ` * **d** : float .. _function-strudel_pattern_tremdepth_Pattern_Pattern: .. das:function:: tremdepth(pat: Pattern; mod_pat: Pattern) : Pattern ---- tremolo ^^^^^^^ .. _function-strudel_pattern_tremolo_Pattern_Pattern: .. das:function:: tremolo(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated tremolo rate — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_tremolo_Pattern_float: .. das:function:: tremolo(pat: Pattern; r: float) : Pattern ---- tremolodepth ^^^^^^^^^^^^ .. _function-strudel_pattern_tremolodepth_Pattern_Pattern: .. das:function:: tremolodepth(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated tremolo depth — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_tremolodepth_Pattern_float: .. das:function:: tremolodepth(pat: Pattern; d: float) : Pattern +++++++++++++++++++ Fluent control: SF2 +++++++++++++++++++ * :ref:`sf2 (var pat: Pattern; name: string) : Pattern ` * :ref:`sf2 (var pat: Pattern; program: int) : Pattern ` * :ref:`sf2_bank (var pat: Pattern; bank: int) : Pattern ` * :ref:`sf2_expression (var pat: Pattern; v: float) : Pattern ` * :ref:`sf2_expression (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`sf2_mod_wheel (var pat: Pattern; var mod_pat: Pattern) : Pattern ` * :ref:`sf2_mod_wheel (var pat: Pattern; v: float) : Pattern ` * :ref:`sf2_pitch_bend (var pat: Pattern; v: float) : Pattern ` * :ref:`sf2_pitch_bend (var pat: Pattern; var mod_pat: Pattern) : Pattern ` sf2 ^^^ .. _function-strudel_pattern_sf2_Pattern_string: .. das:function:: sf2(pat: Pattern; name: string) : Pattern Fluent shorthand for `set_sf2` by GM instrument name. Example: `pat |> sf2("piano")`. :Arguments: * **pat** : :ref:`Pattern ` * **name** : string .. _function-strudel_pattern_sf2_Pattern_int: .. das:function:: sf2(pat: Pattern; program: int) : Pattern ---- .. _function-strudel_pattern_sf2_bank_Pattern_int: .. das:function:: sf2_bank(pat: Pattern; bank: int) : Pattern Fluent shorthand for `set_sf2_bank`. Sets SF2 bank (0 = melodic, 128 = percussion). :Arguments: * **pat** : :ref:`Pattern ` * **bank** : int sf2_expression ^^^^^^^^^^^^^^ .. _function-strudel_pattern_sf2_expression_Pattern_float: .. das:function:: sf2_expression(pat: Pattern; v: float) : Pattern Fluent shorthand for `set_sf2_expression`. Sets SF2 expression CC11 (0..1). :Arguments: * **pat** : :ref:`Pattern ` * **v** : float .. _function-strudel_pattern_sf2_expression_Pattern_Pattern: .. das:function:: sf2_expression(pat: Pattern; mod_pat: Pattern) : Pattern ---- sf2_mod_wheel ^^^^^^^^^^^^^ .. _function-strudel_pattern_sf2_mod_wheel_Pattern_Pattern: .. das:function:: sf2_mod_wheel(pat: Pattern; mod_pat: Pattern) : Pattern Pattern-modulated SF2 mod wheel (CC1) — sampled from `mod_pat` per event. :Arguments: * **pat** : :ref:`Pattern ` * **mod_pat** : :ref:`Pattern ` .. _function-strudel_pattern_sf2_mod_wheel_Pattern_float: .. das:function:: sf2_mod_wheel(pat: Pattern; v: float) : Pattern ---- sf2_pitch_bend ^^^^^^^^^^^^^^ .. _function-strudel_pattern_sf2_pitch_bend_Pattern_float: .. das:function:: sf2_pitch_bend(pat: Pattern; v: float) : Pattern Fluent shorthand for `set_sf2_pitch_bend`. Sets SF2 pitch bend (0..1, 0.5 = center). :Arguments: * **pat** : :ref:`Pattern ` * **v** : float .. _function-strudel_pattern_sf2_pitch_bend_Pattern_Pattern: .. das:function:: sf2_pitch_bend(pat: Pattern; mod_pat: Pattern) : Pattern +++++++ Signals +++++++ * :ref:`cosine () : Pattern ` * :ref:`cosine2 () : Pattern ` * :ref:`irand (n: int) : Pattern ` * :ref:`isaw () : Pattern ` * :ref:`isaw2 () : Pattern ` * :ref:`itri () : Pattern ` * :ref:`itri2 () : Pattern ` * :ref:`perlin () : Pattern ` * :ref:`rand () : Pattern ` * :ref:`rand2 () : Pattern ` * :ref:`range (var pat: Pattern; lo: float; hi: float) : Pattern ` * :ref:`run (n: int) : Pattern ` * :ref:`saw () : Pattern ` * :ref:`saw2 () : Pattern ` * :ref:`signal (var fn: lambda\<(t:double):float\>) : Pattern ` * :ref:`signal_cosine () : Pattern ` * :ref:`signal_perlin () : Pattern ` * :ref:`signal_range (var pat: Pattern; lo: float; hi: float) : Pattern ` * :ref:`signal_saw () : Pattern ` * :ref:`signal_sine () : Pattern ` * :ref:`signal_tri () : Pattern ` * :ref:`sine () : Pattern ` * :ref:`sine2 () : Pattern ` * :ref:`square () : Pattern ` * :ref:`square2 () : Pattern ` * :ref:`tri () : Pattern ` * :ref:`tri2 () : Pattern ` .. _function-strudel_pattern_cosine: .. das:function:: cosine() : Pattern Unipolar cosine signal `0..1`. Alias for `signal_cosine`. .. _function-strudel_pattern_cosine2: .. das:function:: cosine2() : Pattern Bipolar cosine signal `-1..1`. .. _function-strudel_pattern_irand_int: .. das:function:: irand(n: int) : Pattern Random integer signal in `0..n-1`, deterministic. :Arguments: * **n** : int .. _function-strudel_pattern_isaw: .. das:function:: isaw() : Pattern Inverted unipolar sawtooth signal — falls from 1.0 to 0.0 each cycle. .. _function-strudel_pattern_isaw2: .. das:function:: isaw2() : Pattern Bipolar inverted sawtooth signal `-1..1`. .. _function-strudel_pattern_itri: .. das:function:: itri() : Pattern Inverted unipolar triangle signal — starts at 1.0, dips to 0.0 at midpoint. .. _function-strudel_pattern_itri2: .. das:function:: itri2() : Pattern Bipolar inverted triangle signal `-1..1`. .. _function-strudel_pattern_perlin: .. das:function:: perlin() : Pattern Unipolar Perlin-noise signal `0..1`. Alias for `signal_perlin`. .. _function-strudel_pattern_rand: .. das:function:: rand() : Pattern Unipolar deterministic random signal `0..1` — hash-based, same time yields same value. .. _function-strudel_pattern_rand2: .. das:function:: rand2() : Pattern Bipolar deterministic random signal `-1..1` — hash-based. .. _function-strudel_pattern_range_Pattern_float_float: .. das:function:: range(pat: Pattern; lo: float; hi: float) : Pattern Scales a signal pattern from `0..1` to `lo..hi`. Alias for `signal_range`. Example: `sine() |> range(200.0, 4000.0)`. :Arguments: * **pat** : :ref:`Pattern ` * **lo** : float * **hi** : float .. _function-strudel_pattern_run_int: .. das:function:: run(n: int) : Pattern Discrete ramp `0..n-1` within each cycle — `n` haps per cycle with values `0, 1, ..., n-1`. :Arguments: * **n** : int .. _function-strudel_pattern_saw: .. das:function:: saw() : Pattern Unipolar sawtooth signal `0..1`. Alias for `signal_saw`. .. _function-strudel_pattern_saw2: .. das:function:: saw2() : Pattern Bipolar sawtooth signal `-1..1`. .. _function-strudel_pattern_signal_lambda_ls_t_c_double_c_float_gr_: .. das:function:: signal(fn: lambda<(t:double):float>) : Pattern Builds a continuous-signal pattern from `fn(t) : float`. Produces one hap per query with `has_whole=false` and value stored in `note`. Foundation for `sine`, `saw`, `perlin`, etc. :Arguments: * **fn** : lambda<(t:double):float> .. _function-strudel_pattern_signal_cosine: .. das:function:: signal_cosine() : Pattern Unipolar cosine signal, mapped to `0..1` over one cycle. Same as `signal_sine` shifted left by 0.25 cycles. .. _function-strudel_pattern_signal_perlin: .. das:function:: signal_perlin() : Pattern Deterministic Perlin-style noise mapped to `0..1`. Uses smootherstep interpolation between hashed random values at integer cycle boundaries. .. _function-strudel_pattern_signal_range_Pattern_float_float: .. das:function:: signal_range(pat: Pattern; lo: float; hi: float) : Pattern Scales a signal pattern from `0..1` to `lo..hi`. Example: `sine() |> signal_range(200.0, 4000.0)` for a 200..4000 Hz filter sweep. :Arguments: * **pat** : :ref:`Pattern ` * **lo** : float * **hi** : float .. _function-strudel_pattern_signal_saw: .. das:function:: signal_saw() : Pattern Sawtooth signal — ramps `0..1` linearly within each cycle. .. _function-strudel_pattern_signal_sine: .. das:function:: signal_sine() : Pattern Unipolar sine signal, mapped to `0..1` over one cycle. At t=0 → 0.5, t=0.25 → 1.0, t=0.5 → 0.5, t=0.75 → 0.0. .. _function-strudel_pattern_signal_tri: .. das:function:: signal_tri() : Pattern Triangle signal — rises `0→1` in the first half of each cycle, falls `1→0` in the second half. .. _function-strudel_pattern_sine: .. das:function:: sine() : Pattern Unipolar sine signal `0..1`. Alias for `signal_sine`. .. _function-strudel_pattern_sine2: .. das:function:: sine2() : Pattern Bipolar sine signal `-1..1`. .. _function-strudel_pattern_square: .. das:function:: square() : Pattern Unipolar square signal (1.0 first half, 0.0 second half). .. _function-strudel_pattern_square2: .. das:function:: square2() : Pattern Bipolar square signal `-1..1`. .. _function-strudel_pattern_tri: .. das:function:: tri() : Pattern Unipolar triangle signal `0..1`. Alias for `signal_tri`. .. _function-strudel_pattern_tri2: .. das:function:: tri2() : Pattern Bipolar triangle signal `-1..1`.