From 9fbf91db06a6d4f4b5cd8bb45389a731bb86bf22 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 13 Apr 2025 18:48:02 +0100 Subject: initial --- site/udo/twist/transforms/harmonic.udo | 142 +++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100755 site/udo/twist/transforms/harmonic.udo (limited to 'site/udo/twist/transforms/harmonic.udo') 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 -- cgit v1.2.3