aboutsummaryrefslogtreecommitdiff
path: root/site/udo/twist/transforms/delay.udo
blob: 5d5961299c9d043308871b4cddab6f17adbc899d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include "/twist/transform_api.udo"

instr twst_tf_vdelay
	$TWST_TRANSFORM
	aL, aR, ileft, iright twst_getinput
	kdelay = twst_param:k("delay") * 1000
	kfeedback = twst_param:k("feedback")
	adelay = a(kdelay)

	if (ileft == 1) then
		afbkL init 0
		aLd vdelay3 aL + afbkL, adelay, 1000
		afbkL = aLd * kfeedback
		aL = aLd
	endif
	if (iright == 1) then
		afbkR init 0
		aRd vdelay3 aR + afbkR, adelay, 1000
		afbkR = aRd * kfeedback
		aR = aRd
	endif
	outs aL, aR
endin

instr twst_tf_flanger
	$TWST_TRANSFORM
	aL, aR, ileft, iright twst_getinput
	kdelay = twst_param:k("delay")
	kfeedback = twst_param:k("feedback")

	adelay = a(kdelay)
	if (ileft == 1) then
		aL flanger aL, adelay, kfeedback
	endif
	if (iright == 1) then
		aR flanger aR, adelay, kfeedback
	endif
	outs aL, aR
endin

instr twst_tf_phaser1
	$TWST_TRANSFORM
	aL, aR, ileft, iright twst_getinput
	kfreq = twst_param:k("freq")
	iord = twst_parami("order")
	kfeedback = twst_param:k("feedback")
	if (ileft == 1) then
		aL phaser1 aL, kfreq, iord, kfeedback 
	endif
	if (iright == 1) then
		aR phaser1 aR, kfreq, iord, kfeedback
	endif
	outs aL, aR
endin

instr twst_tf_phaser2
	$TWST_TRANSFORM
	aL, aR, ileft, iright twst_getinput
	kfreq = twst_param:k("freq")
	kq = twst_param:k("q")
	iord = twst_parami("order")
	imode = twst_parami("mode")
	ksep = twst_param:k("sep")
	kfeedback = twst_param:k("feedback")
	if (ileft == 1) then
		aL phaser2 aL, kfreq, kq, iord, imode, ksep, kfeedback
	endif
	if (iright == 1) then
		aR phaser2 aR, kfreq, kq, iord, imode, ksep, kfeedback
	endif
	outs aL, aR
endin