[SCM] calf/master: + Wavetable: More wavetables, new preset.

js at users.alioth.debian.org js at users.alioth.debian.org
Tue May 7 15:39:25 UTC 2013


The following commit has been merged in the master branch:
commit 05bcb8b5325d93f9a0c022193cbab7f1de9da50a
Author: Krzysztof Foltman <wdev at foltman.com>
Date:   Mon Mar 2 23:54:52 2009 +0000

    + Wavetable: More wavetables, new preset.

diff --git a/presets.xml b/presets.xml
index bd9df49..4bee691 100644
--- a/presets.xml
+++ b/presets.xml
@@ -3939,4 +3939,31 @@
   <param name="adsr3_r" value="50" />
   <param name="adsr3_v" value="0" />
 </preset>
+<preset plugin="wavetable" name="Jazz Guitar">
+  <param name="o1wave" value="20" />
+  <param name="o1offset" value="0.04" />
+  <param name="o1trans" value="0" />
+  <param name="o1detune" value="1" />
+  <param name="o1level" value="0.133972" />
+  <param name="o2wave" value="16" />
+  <param name="o2offset" value="0.14" />
+  <param name="o2trans" value="0" />
+  <param name="o2detune" value="-1" />
+  <param name="o2level" value="0" />
+  <param name="adsr_a" value="1" />
+  <param name="adsr_d" value="1863.35" />
+  <param name="adsr_s" value="0.03" />
+  <param name="adsr_r" value="50" />
+  <param name="adsr_v" value="0" />
+  <param name="adsr2_a" value="1" />
+  <param name="adsr2_d" value="350" />
+  <param name="adsr2_s" value="0.5" />
+  <param name="adsr2_r" value="50" />
+  <param name="adsr2_v" value="0" />
+  <param name="adsr3_a" value="1" />
+  <param name="adsr3_d" value="350" />
+  <param name="adsr3_s" value="0.5" />
+  <param name="adsr3_r" value="50" />
+  <param name="adsr3_v" value="0" />
+</preset>
 </presets>
diff --git a/src/calf/metadata.h b/src/calf/metadata.h
index 35cc3ac..95ef110 100644
--- a/src/calf/metadata.h
+++ b/src/calf/metadata.h
@@ -231,6 +231,11 @@ struct wavetable_metadata: public plugin_metadata<wavetable_metadata>
         wt_bell3,
         wt_tine,
         wt_tine2,
+        wt_clav,
+        wt_clav2,
+        wt_gtr,
+        wt_gtr2,
+        wt_gtr3,
         wt_count
     };
     enum { 
diff --git a/src/modules.cpp b/src/modules.cpp
index 3d9bbc4..80ace36 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -521,6 +521,11 @@ const char *wavetable_names[] = {
     "Bell 3",
     "Tine",
     "Tine 2",
+    "Clav",
+    "Clav 2",
+    "Gtr",
+    "Gtr 2",
+    "Gtr 3",
 };
 
 const char *wavetable_init_soundfont = "";
diff --git a/src/wavetable.cpp b/src/wavetable.cpp
index 4486370..ba25e50 100644
--- a/src/wavetable.cpp
+++ b/src/wavetable.cpp
@@ -309,6 +309,86 @@ wavetable_audio_module::wavetable_audio_module()
             tables[wavetable_metadata::wt_tine2][i][j] = 32767 * v;
         }
     }
+    for (int i = 0; i < 129; i++)
+    {
+        for (int j = 0; j < 256; j++)
+        {
+            float ph = j * 2 * M_PI / 256;
+            float ph2 = j / 128.0 - 1;
+            float ii = i / 128.0;
+            float w = sincl(ph2 * (1 + 7 * ii * ii), 4) * pow(sincl(j / 256.0, 1), 2);
+            float v = sin(ph + ii * sin(ph - 2 * ii * w));
+            tables[wavetable_metadata::wt_clav][i][j] = 32767 * v;
+        }
+    }
+    for (int i = 0; i < 129; i++)
+    {
+        for (int j = 0; j < 256; j++)
+        {
+            float ph = j * 2 * M_PI / 256;
+            float ph2 = j / 128.0 - 1;
+            float ii = i / 128.0;
+            float w = sincl(ph2 * (1 + 7 * ii * ii), 6) * sincl(j / 256.0, 1);
+            float v = sin(ph + ii * sin(3 * ph - 2 * ii * w));
+            tables[wavetable_metadata::wt_clav2][i][j] = 32767 * v;
+        }
+    }
+    /*
+    for (int i = 0; i < 129; i++)
+    {
+        for (int j = 0; j < 256; j++)
+        {
+            float ph = j * 2 * M_PI / 256;
+            float ph2 = j / 128.0 - 1;
+            float ii = i / 128.0;
+            float w = sincl(ph2 * (1 + 7 * ii * ii), 6) * pow(sincl(j / 256.0, 1), 1);
+            float v = sin(ph + ii * ii * ii * sin(3 * ph - ii * ii * ii * w));
+            tables[wavetable_metadata::wt_gtr][i][j] = 32767 * v;
+        }
+    }
+    */
+    for (int i = 0; i < 129; i++)
+    {
+        for (int j = 0; j < 256; j++)
+        {
+            float ph = j * 2 * M_PI / 256;
+            float ph2 = j / 128.0 - 1;
+            float ii = i / 128.0;
+            float ii2 = ii;
+            //float w = sincl(ph2 * (1 + 15 * ii2 * ii2), 4) * pow(sincl(j / 256.0, 1), 1);
+            float w = pow(sincl(j / 256.0, 1), 1);
+            float v = sin(ph + ii2 * ii2 * ii2 * sin(3 * ph - ii2 * ii2 * ii2 * w * sin(ph + sin(3 * ph) + ii * sin(11 * ph) + ii * ii * sin(25 * ph))));
+            tables[wavetable_metadata::wt_gtr][i][j] = 32767 * v;
+        }
+    }
+    for (int i = 0; i < 129; i++)
+    {
+        for (int j = 0; j < 256; j++)
+        {
+            float ph = j * 2 * M_PI / 256;
+            float ph2 = j / 128.0 - 1;
+            float ii = i / 128.0;
+            float ii2 = dsp::clip(ii - 0.5, 0.0, 1.0);
+            //float w = sincl(ph2 * (1 + 15 * ii2 * ii2), 4) * pow(sincl(j / 256.0, 1), 1);
+            float w = pow(sincl(j / 256.0, 1), 1);
+            float v = sin(ph + ii * ii * ii * sin(3 * ph - ii * ii * ii * w * sin(ph + sin(3 * ph + ii2 * sin(13 * ph)))));
+            tables[wavetable_metadata::wt_gtr2][i][j] = 32767 * v;
+        }
+    }
+    for (int i = 0; i < 129; i++)
+    {
+        for (int j = 0; j < 256; j++)
+        {
+            float ph = j * 2 * M_PI / 256;
+            float ph2 = j / 128.0 - 1;
+            float ii = i / 128.0;
+            float ii2 = dsp::clip(2 * (ii - 0.5), 0.0, 1.0);
+            //float w = sincl(ph2 * (1 + 15 * ii2 * ii2), 4) * pow(sincl(j / 256.0, 1), 1);
+            float w = pow(sincl(j / 256.0, 1), 1);
+            float v = sin(ph + ii * sin(3 * ph - ii * w * sin(ph + sin(3 * ph + 0.5 * ii2 * sin(13 * ph + 0.5 * sin(4 * ph))))));
+            tables[wavetable_metadata::wt_gtr3][i][j] = 32767 * v;
+        }
+    }
 }
 
 

-- 
calf audio plugins packaging



More information about the pkg-multimedia-commits mailing list