trigger envelopes

This commit is contained in:
omar mashaal 2020-05-22 19:10:26 +10:00
parent 5ce4c13c1f
commit 36d6db6ed3
3 changed files with 9 additions and 10 deletions

View File

@ -9,7 +9,7 @@ A small set of SuperDirt synths and Tidal helpers to control modular synths. No
d1 $ pitch "0 10 8 1" # scale "<12 31 8>" # x 0
```
`pitch` allows a pattern of note values. `scale` sets the amount of notes per octave. The pitch and scale values will be converted to `1v/octave`. Both `pitch` and `scale` can be paternised for some microtonal madness...
`pitch` allows a pattern of note values. `scale` sets the amount of notes per octave. The pitch and scale values will be converted to `1v/octave`. Both `pitch` and `scale` can be patternised for some microtonal madness...
### Gate
@ -33,19 +33,17 @@ d3 $ volt "1 0.2 0.5 -0.2" # x 2
```
-- create adsr
d4 $ adsr 0.001 0.2 0.25 1 # x 3
d4 $ trig "1 ~ 1 1" # adsr 0.001 0.2 0.25 1 # x 3
```
![envelope](https://www.dropbox.com/s/rmsxurs03brmsug/envelope.png?raw=1)
```
-- patternise adsr
d5 $ adsr "<0.05 0.9>" "<0 0.4>" 1 1 # x 4
d5 $ trig "1 ~ 1 1" # adsr (range 0.1 1 sine) "<0 0.4>" 1 1 # x 4
```
![patternised envelopes](https://www.dropbox.com/s/qd6kxn22mexpyhq/pattterned-envelopes.png?raw=1)
`trig` will create a trigger sequence, `adsr` will generate a new envelope for each trigger. Both of these can be patternised.
`adsr` will generate a new envelope per cycle.
In the second example, the attack time would grow for each triggered envelope over course of the cycle.
### Clock

View File

@ -8,10 +8,10 @@ d2 $ gate "0 1 0 0 1 1 1" # x 1
d3 $ volt "1 0.2 0.5 -0.2" # x 2
-- create adsr
d4 $ adsr 0.001 0.2 0.25 1 # x 3
d4 $ trig "1 ~ 1 1" # adsr 0.001 0.2 0.25 1 # x 3
-- patternise adsr
d5 $ adsr "<0.05 0.9>" "<0 0.4>" 1 1 # x 4
d5 $ trig "1 ~ 1 1" # adsr (range 0.1 1 sine) "<0 0.4>" 1 1 # x 4
-- clock cv output
d6 $ clock # x 5

View File

@ -3,5 +3,6 @@ scale scale = stepsPerOctave scale
volt volt = rate volt # s "voltage"
gate = volt
clock = rate "[1 0]*8" # s "voltage"
adsr w x y z = n "0" # attack w # decay x # sustain y # release z # s "adsr"
adsr w x y z = attack w # decay x # sustain y # release z # s "adsr"
trig trig = n trig
x x = channel x