aboutsummaryrefslogtreecommitdiff
path: root/site/udo/twist/transforms/harmonic.udo
diff options
context:
space:
mode:
Diffstat (limited to 'site/udo/twist/transforms/harmonic.udo')
-rwxr-xr-xsite/udo/twist/transforms/harmonic.udo142
1 files changed, 142 insertions, 0 deletions
diff --git a/site/udo/twist/transforms/harmonic.udo b/site/udo/twist/transforms/harmonic.udo
new file mode 100755
index 0000000..717de44
--- /dev/null
+++ b/site/udo/twist/transforms/harmonic.udo
@@ -0,0 +1,142 @@
+#include "/twist/transform_api.udo"
+
+instr twst_tf_resony
+ $TWST_TRANSFORM
+ aL, aR, ileft, iright twst_getinput
+ kfreq twst_tf_freq
+ kbw = twst_param:k("bandwidth")
+ inum = twst_parami("num")
+ ksep = twst_param:k("separation")
+ isepmode = twst_parami("sepmode")
+ ibalance = twst_parami("balance")
+
+ if (ileft == 1) then
+ aLr resony aL, kfreq, kbw, inum, ksep, isepmode
+ if (ibalance == 1) then
+ aL balance aLr, aL
+ else
+ aL = aLr
+ endif
+ endif
+ if (iright == 1) then
+ aRr resony aR, kfreq, kbw, inum, ksep, isepmode
+ if (ibalance == 1) then
+ aR balance aRr, aR
+ else
+ aR = aRr
+ endif
+ endif
+ outs aL, aR
+endin
+
+instr twst_tf_resonx
+ $TWST_TRANSFORM
+ aL, aR, ileft, iright twst_getinput
+ kfreq twst_tf_freq
+ kbw = twst_param:k("bandwidth")
+ inum = twst_parami("num")
+ ibalance = twst_parami("balance")
+
+ if (ileft == 1) then
+ aLr resonx aL, kfreq, kbw, inum
+ if (ibalance == 1) then
+ aL balance aLr, aL
+ else
+ aL = aLr
+ endif
+ endif
+ if (iright == 1) then
+ aRr resonx aR, kfreq, kbw, inum
+ if (ibalance == 1) then
+ aR balance aRr, aR
+ else
+ aR = aRr
+ endif
+ endif
+ outs aL, aR
+endin
+
+instr twst_tf_streson
+ $TWST_TRANSFORM
+ aL, aR, ileft, iright twst_getinput
+ kfreq twst_tf_freq
+ kfeedback = twst_param:k("feedback")
+ if (ileft == 1) then
+ aL streson aL, kfreq, kfeedback
+ endif
+ if (iright == 1) then
+ aR streson aR, kfreq, kfeedback
+ endif
+ outs aL, aR
+endin
+
+instr twst_tf_mvmfilter
+ $TWST_TRANSFORM
+ aL, aR, ileft, iright twst_getinput
+ kfreq = twst_param:k("freq")
+ kdecay = twst_param:k("decay")
+ kbalance = twst_param:k("balance")
+ if (ileft == 1) then
+ aLf mvmfilter aL, kfreq, kdecay
+ if (kbalance == 1) then
+ aL balance aLf, aL
+ else
+ aL = aLf
+ endif
+ endif
+ if (iright == 1) then
+ aRf mvmfilter aR, kfreq, kdecay
+ if (kbalance == 1) then
+ aL balance aRf, aR
+ else
+ aR = aRf
+ endif
+ endif
+ outs aL, aR
+endin
+
+instr twst_tf_harmon
+ $TWST_TRANSFORM
+ aL, aR, ileft, iright twst_getinput
+ kestfreq = twst_param:k("estfreq")
+ kmaxvar = twst_param:k("maxvar")
+ kgenfreq1 = twst_param:k("genfreq1")
+ kgenfreq2 = twst_param:k("genfreq2")
+ iminfreq = twst_parami("minfreq")
+ ianalysistime = twst_parami("analysistime")
+ if (ileft == 1) then
+ aL harmon aL, kestfreq, kmaxvar, kgenfreq1, kgenfreq2, 0, iminfreq, ianalysistime
+ endif
+ if (iright == 1) then
+ aR harmon aR, kestfreq, kmaxvar, kgenfreq1, kgenfreq2, 0, iminfreq, ianalysistime
+ endif
+ outs aL, aR
+endin
+
+instr twst_tf_formantharmon
+ $TWST_TRANSFORM
+ aL, aR, ileft, iright twst_getinput
+ kgenfreq1 = twst_param:k("genfreq1")
+ kgenfreq2 = twst_param:k("genfreq2")
+ kgenfreq3 = twst_param:k("genfreq3")
+ kgenfreq4 = twst_param:k("genfreq4")
+ iminfreq = octcps:i(twst_parami("minfreq"))
+ ipolarity = twst_parami("polarity")
+
+ ipupdate = twst_parami("pupdate")
+ iplow = octcps:i(twst_parami("plowfreq"))
+ iphigh = octcps:i(twst_parami("phighfreq"))
+ ipthresh = dbamp:i(twst_parami("pthresh"))
+ ipfrqs = twst_parami("pfrqs")
+ ipconfirm = twst_parami("pconfirms")
+
+ if (ileft == 1) then
+ koct, kamp pitch aL, ipupdate, iplow, iphigh, ipthresh, ipfrqs, ipconfirm
+ aL harmon4 aL, koct, kgenfreq1, kgenfreq2, kgenfreq3, kgenfreq4, 0, iminfreq, ipolarity
+ endif
+ if (iright == 1) then
+ koct, kamp pitch aR, ipupdate, iplow, iphigh, ipthresh, ipfrqs, ipconfirm
+ aR harmon4 aR, koct, kgenfreq1, kgenfreq2, kgenfreq3, kgenfreq4, 0, iminfreq, ipolarity
+ endif
+ outs aL, aR
+endin