[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