mirror of
https://github.com/eliasstepanik/strudel-docker.git
synced 2026-01-26 13:08:28 +00:00
document pitch envelope
This commit is contained in:
parent
1c99944a32
commit
67f0758cb5
@ -892,12 +892,80 @@ const generic_params = [
|
|||||||
*/
|
*/
|
||||||
['freq'],
|
['freq'],
|
||||||
// pitch envelope
|
// pitch envelope
|
||||||
|
/**
|
||||||
|
* Attack time of pitch envelope.
|
||||||
|
*
|
||||||
|
* @name pattack
|
||||||
|
* @synonyms patt
|
||||||
|
* @param {number | Pattern} time time in seconds
|
||||||
|
* @example
|
||||||
|
* note("<c eb g bb>").pattack("<0 .1 .25 .5>")
|
||||||
|
*
|
||||||
|
*/
|
||||||
['pattack', 'patt'],
|
['pattack', 'patt'],
|
||||||
|
/**
|
||||||
|
* Decay time of pitch envelope.
|
||||||
|
*
|
||||||
|
* @name pdecay
|
||||||
|
* @synonyms pdec
|
||||||
|
* @param {number | Pattern} time time in seconds
|
||||||
|
* @example
|
||||||
|
* note("<c eb g bb>").pdecay("<0 .1 .25 .5>")
|
||||||
|
*
|
||||||
|
*/
|
||||||
['pdecay', 'pdec'],
|
['pdecay', 'pdec'],
|
||||||
|
// TODO: how to use psustain?!
|
||||||
['psustain', 'psus'],
|
['psustain', 'psus'],
|
||||||
|
/**
|
||||||
|
* Release time of pitch envelope
|
||||||
|
*
|
||||||
|
* @name prelease
|
||||||
|
* @synonyms prel
|
||||||
|
* @param {number | Pattern} time time in seconds
|
||||||
|
* @example
|
||||||
|
* note("<c eb g bb> ~")
|
||||||
|
* .release(.5) // to hear the pitch release
|
||||||
|
* .prelease("<0 .1 .25 .5>")
|
||||||
|
*
|
||||||
|
*/
|
||||||
['prelease', 'prel'],
|
['prelease', 'prel'],
|
||||||
|
/**
|
||||||
|
* Amount of pitch envelope. Negative values will flip the envelope.
|
||||||
|
* If you don't set other pitch envelope controls, `pattack:.2` will be the default.
|
||||||
|
*
|
||||||
|
* @name penv
|
||||||
|
* @param {number | Pattern} semitones change in semitones
|
||||||
|
* @example
|
||||||
|
* note("c")
|
||||||
|
* .penv("<12 7 1 .5 0 -1 -7 -12>")
|
||||||
|
*
|
||||||
|
*/
|
||||||
['penv'],
|
['penv'],
|
||||||
|
/**
|
||||||
|
* Curve of envelope. Defaults to linear. exponential is good for kicks
|
||||||
|
*
|
||||||
|
* @name pcurve
|
||||||
|
* @param {number | Pattern} type 0 = linear, 1 = exponential
|
||||||
|
* @example
|
||||||
|
* note("g1*2")
|
||||||
|
* .s("sine").pdec(.5)
|
||||||
|
* .penv(32)
|
||||||
|
* .pcurve("<0 1>")
|
||||||
|
*
|
||||||
|
*/
|
||||||
['pcurve'],
|
['pcurve'],
|
||||||
|
/**
|
||||||
|
* Sets the range anchor of the envelope:
|
||||||
|
* - anchor 0: range = [note, note + penv]
|
||||||
|
* - anchor 1: range = [note - penv, note]
|
||||||
|
* If you don't set an anchor, the value will default to the psustain value.
|
||||||
|
*
|
||||||
|
* @name panchor
|
||||||
|
* @param {number | Pattern} anchor anchor offset
|
||||||
|
* @example
|
||||||
|
* note("c").penv(12).panchor("<0 .5 1 .5>")
|
||||||
|
*
|
||||||
|
*/
|
||||||
['panchor'],
|
['panchor'],
|
||||||
// TODO: https://tidalcycles.org/docs/configuration/MIDIOSC/control-voltage/#gate
|
// TODO: https://tidalcycles.org/docs/configuration/MIDIOSC/control-voltage/#gate
|
||||||
['gate', 'gat'],
|
['gate', 'gat'],
|
||||||
|
|||||||
@ -138,6 +138,60 @@ There is one filter envelope for each filter type and thus one set of envelope f
|
|||||||
|
|
||||||
<JsDoc client:idle name="lpenv" h={0} />
|
<JsDoc client:idle name="lpenv" h={0} />
|
||||||
|
|
||||||
|
## Pitch Envelope
|
||||||
|
|
||||||
|
You can also control the pitch with envelopes!
|
||||||
|
Pitch envelopes can breathe life into static sounds:
|
||||||
|
|
||||||
|
<MiniRepl
|
||||||
|
client:idle
|
||||||
|
tune={`n("<-4,0 5 2 1>*<2!3 4>")
|
||||||
|
.scale("<C F>/8:pentatonic")
|
||||||
|
.s("gm_electric_guitar_jazz")
|
||||||
|
.penv("<.5 0 7 -2>*2").vib("4:.1")
|
||||||
|
.phaser(2).delay(.25).room(.3)
|
||||||
|
.size(4).fast(.75)`}
|
||||||
|
/>
|
||||||
|
|
||||||
|
You also create some lovely chiptune-style sounds:
|
||||||
|
|
||||||
|
<MiniRepl
|
||||||
|
client:idle
|
||||||
|
tune={`n(run("<4 8>/16")).jux(rev)
|
||||||
|
.chord("<C^7 <Db^7 Fm7>>")
|
||||||
|
.dict('ireal')
|
||||||
|
.voicing().add(note("<0 1>/8"))
|
||||||
|
.dec(.1).room(.2)
|
||||||
|
.segment("<4 [2 8]>")
|
||||||
|
.penv("<0 <2 -2>>").patt(.02)`}
|
||||||
|
/>
|
||||||
|
|
||||||
|
Let's break down all pitch envelope controls:
|
||||||
|
|
||||||
|
## pattack
|
||||||
|
|
||||||
|
<JsDoc client:idle name="pattack" h={0} />
|
||||||
|
|
||||||
|
## pdecay
|
||||||
|
|
||||||
|
<JsDoc client:idle name="pdecay" h={0} />
|
||||||
|
|
||||||
|
## prelease
|
||||||
|
|
||||||
|
<JsDoc client:idle name="prelease" h={0} />
|
||||||
|
|
||||||
|
## penv
|
||||||
|
|
||||||
|
<JsDoc client:idle name="penv" h={0} />
|
||||||
|
|
||||||
|
## pcurve
|
||||||
|
|
||||||
|
<JsDoc client:idle name="pcurve" h={0} />
|
||||||
|
|
||||||
|
## panchor
|
||||||
|
|
||||||
|
<JsDoc client:idle name="panchor" h={0} />
|
||||||
|
|
||||||
# Dynamics
|
# Dynamics
|
||||||
|
|
||||||
## gain
|
## gain
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user