aboutsummaryrefslogtreecommitdiff
path: root/site/udo/pvs_tools.udo
diff options
context:
space:
mode:
authorRichard <q@1bpm.net>2025-04-13 18:48:02 +0100
committerRichard <q@1bpm.net>2025-04-13 18:48:02 +0100
commit9fbf91db06a6d4f4b5cd8bb45389a731bb86bf22 (patch)
tree291bd79ce340e67affa755a8a6b4f6a83cce93ea /site/udo/pvs_tools.udo
downloadapps.csound.1bpm.net-9fbf91db06a6d4f4b5cd8bb45389a731bb86bf22.tar.gz
apps.csound.1bpm.net-9fbf91db06a6d4f4b5cd8bb45389a731bb86bf22.tar.bz2
apps.csound.1bpm.net-9fbf91db06a6d4f4b5cd8bb45389a731bb86bf22.zip
initial
Diffstat (limited to 'site/udo/pvs_tools.udo')
-rwxr-xr-xsite/udo/pvs_tools.udo31
1 files changed, 31 insertions, 0 deletions
diff --git a/site/udo/pvs_tools.udo b/site/udo/pvs_tools.udo
new file mode 100755
index 0000000..2fcbc8a
--- /dev/null
+++ b/site/udo/pvs_tools.udo
@@ -0,0 +1,31 @@
+#ifndef UDO_PVSTOOLS
+#define UDO_PVSTOOLS ##
+/*
+ Phase vocoder tools
+
+ This file is part of the SONICS UDO collection by Richard Knight 2024
+ License: GPL-2.0-or-later
+ http://1bpm.net
+
+*/
+
+
+opcode pvs_ifn2buffer, i, iiiii
+ ifn, ifftsize, ioverlap, iwinsize, iwinshape xin
+ ktimek timeinstk
+ if (ktimek == 1) then
+ ilen = ftlen(ifn) / ftsr(ifn)
+ kcycles = ilen * kr
+ kcount init 0
+ while (kcount < kcycles) do
+ apos lphasor 1
+ ain table3 apos, ifn
+ ffin pvsanal ain, ifftsize, ioverlap, iwinsize, iwinshape
+ ibuf, ktime pvsbuffer ffin, ilen + (ifftsize / sr)
+ kcount += 1
+ od
+ xout ibuf
+ endif
+endop
+
+#end