[SCM] calf/master: + Organ: added pan controls for drawbars, refactored inlined XML, fixed percussion
js at users.alioth.debian.org
js at users.alioth.debian.org
Tue May 7 15:37:06 UTC 2013
The following commit has been merged in the master branch:
commit 314f11a44cd7cd3e52ab9ff59735c0362278a91c
Author: kfoltman <kfoltman at 78b06b96-2940-0410-b7fc-879d825d01d8>
Date: Sun Mar 30 23:20:37 2008 +0000
+ Organ: added pan controls for drawbars, refactored inlined XML, fixed percussion
git-svn-id: https://calf.svn.sourceforge.net/svnroot/calf/trunk@140 78b06b96-2940-0410-b7fc-879d825d01d8
diff --git a/src/calf/modules_synths.h b/src/calf/modules_synths.h
index a26a96c..84fde40 100644
--- a/src/calf/modules_synths.h
+++ b/src/calf/modules_synths.h
@@ -202,6 +202,7 @@ public:
par_waveform1, par_waveform2, par_waveform3, par_waveform4, par_waveform5, par_waveform6, par_waveform7, par_waveform8, par_waveform9,
par_detune1, par_detune2, par_detune3, par_detune4, par_detune5, par_detune6, par_detune7, par_detune8, par_detune9,
par_phase1, par_phase2, par_phase3, par_phase4, par_phase5, par_phase6, par_phase7, par_phase8, par_phase9,
+ par_pan1, par_pan2, par_pan3, par_pan4, par_pan5, par_pan6, par_pan7, par_pan8, par_pan9,
par_foldover,
par_percdecay, par_perclevel, par_percharm, par_master, param_count };
enum { in_count = 0, out_count = 2, support_midi = true, rt_capable = true };
diff --git a/src/calf/organ.h b/src/calf/organ.h
index 5da6a62..026553c 100644
--- a/src/calf/organ.h
+++ b/src/calf/organ.h
@@ -33,6 +33,7 @@ struct organ_parameters {
float waveforms[9];
float detune[9];
float phase[9];
+ float pan[9];
float foldover;
float percussion_time;
float percussion_level;
@@ -56,7 +57,6 @@ protected:
enum { wave_sine, wave_sinepl1, wave_sinepl2, wave_sinepl3, wave_ssaw, wave_ssqr, wave_spls, wave_saw, wave_sqr, wave_pulse, wave_count };
static waveform_family<ORGAN_WAVE_BITS> waves[wave_count];
// dsp::sine_table<float, ORGAN_WAVE_SIZE, 1> sine_wave;
- dsp::fixed_point<int64_t, 52> phase, dphase;
int note;
dsp::decay amp;
organ_parameters *parameters;
@@ -73,6 +73,7 @@ protected:
bool released;
int h4, h6, h8, h12, h16;
dsp::fixed_point<int, 3> h10;
+ dsp::fixed_point<int64_t, 52> phase, dphase;
public:
organ_voice(organ_parameters *_parameters)
@@ -114,22 +115,26 @@ public:
// printf("h= %d %d %d %f %d %d\n", h4, h6, h8, (float)h10, h12, h16);
}
- void render_to(float *buf[1], int nsamples) {
+ void render_to(float *buf[2], int nsamples) {
if (note == -1)
return;
- if (!amp.get_active())
+ if (!amp.get_active()) {
dsp::zero(buf[0], nsamples);
- else {
- float tmp[256], *sig;
+ dsp::zero(buf[1], nsamples);
+ } else {
+ float tmp[2][256], *sigl, *sigr;
if (released)
{
- sig = tmp;
+ sigl = tmp[0];
+ sigr = tmp[1];
for (int i=0; i<nsamples; i++)
- tmp[i] = 0;
+ tmp[0][i] = tmp[1][i] = 0;
+ }
+ else {
+ sigl = buf[0];
+ sigr = buf[1];
}
- else
- sig = buf[0];
dsp::fixed_point<int, 20> tphase, tdphase;
for (int h = 0; h < 9; h++)
{
@@ -147,9 +152,12 @@ public:
tphase.set(((phase * hm).get() & 0xFFFFFFFF) + parameters->phaseshift[h]);
tdphase.set((dphase * hm).get() & 0xFFFFFFFF);
float amp = parameters->drawbars[h];
+ float ampl = amp * 0.5f * (-1 + parameters->pan[h]);
+ float ampr = amp * 0.5f * (1 + parameters->pan[h]);
for (int i=0; i<nsamples; i++) {
// float osc = 0.2*sine(phase)+0.1*sine(4*phase)+0.08*sine(12*phase)+0.08*sine(16*phase);
- sig[i] += wave(data, tphase)*amp;
+ sigl[i] += wave(data, tphase)*ampl;
+ sigr[i] += wave(data, tphase)*ampr;
tphase += tdphase;
}
}
@@ -157,7 +165,8 @@ public:
if (released)
{
for (int i=0; i<nsamples; i++) {
- buf[0][i] += tmp[i] * amp.get();
+ buf[0][i] += tmp[0][i] * amp.get();
+ buf[1][i] += tmp[1][i] * amp.get();
amp.age_lin((1.0/44100.0)/0.03,0.0);
}
}
@@ -175,6 +184,7 @@ public:
class percussion_voice: public organ_voice_base {
public:
int sample_rate;
+ dsp::fixed_point<int64_t, 20> phase, dphase;
percussion_voice(organ_parameters *_parameters)
: organ_voice_base(_parameters)
@@ -193,7 +203,7 @@ public:
}
// this doesn't really have a voice interface
- void render_to(float *buf, int nsamples) {
+ void render_to(float *buf[2], int nsamples) {
if (note == -1)
return;
@@ -202,13 +212,15 @@ public:
if (parameters->percussion_level < small_value<float>())
return;
int percussion_harmonic = 2 * parameters->get_percussion_harmonic();
- float level = parameters->percussion_level * (8 * 9);
+ float level = parameters->percussion_level * 9;
// XXXKF the decay needs work!
double age_const = parameters->perc_decay_const;
float *data = waves[wave_sine].begin()->second;
for (int i = 0; i < nsamples; i++) {
float osc = level * wave(data, percussion_harmonic * phase);
- buf[i] += osc * amp.get();
+ osc *= level * amp.get();
+ buf[0][i] += osc;
+ buf[1][i] += osc;
amp.age_exp(age_const, 1.0 / 32768.0);
phase += dphase;
}
@@ -231,15 +243,16 @@ struct drawbar_organ: public synth::basic_synth {
}
void render_to(float *output[], int nsamples)
{
- float buf[4096], *bufptr[] = { buf };
- dsp::zero(buf, nsamples);
+ float buf[2][4096], *bufptr[] = { buf[0], buf[1] };
+ dsp::zero(buf[0], nsamples);
+ dsp::zero(buf[1], nsamples);
basic_synth::render_to(bufptr, nsamples);
if (percussion.get_active())
- percussion.render_to(buf, nsamples);
+ percussion.render_to(bufptr, nsamples);
float gain = parameters->master * (1.0 / (9 * 8));
for (int i=0; i<nsamples; i++) {
- output[0][i] = gain*buf[i];
- output[1][i] = gain*buf[i];
+ output[0][i] = gain*buf[0][i];
+ output[1][i] = gain*buf[1][i];
}
}
synth::voice *alloc_voice() {
diff --git a/src/organ.cpp b/src/organ.cpp
index 950cc17..57e7805 100644
--- a/src/organ.cpp
+++ b/src/organ.cpp
@@ -33,6 +33,20 @@
using namespace synth;
using namespace std;
+#define DRAWBAR_UI(no) \
+ "<label attach-x=\"" no "\" attach-y=\"0\" param=\"l" no "\"/>" \
+ "<vscale attach-x=\"" no "\" attach-y=\"1\" param=\"l" no "\"/>" \
+ "<value attach-x=\"" no "\" attach-y=\"2\" param=\"l" no "\"/>" \
+ "<knob attach-x=\"" no "\" attach-y=\"3\" param=\"f" no "\"/>" \
+ "<value attach-x=\"" no "\" attach-y=\"4\" param=\"f" no "\"/>" \
+ "<combo attach-x=\"" no "\" attach-y=\"5\" param=\"w" no "\"/>" \
+ "<knob attach-x=\"" no "\" attach-y=\"6\" param=\"detune" no "\"/>" \
+ "<value attach-x=\"" no "\" attach-y=\"7\" param=\"detune" no "\"/>" \
+ "<knob attach-x=\"" no "\" attach-y=\"8\" param=\"phase" no "\"/>" \
+ "<value attach-x=\"" no "\" attach-y=\"9\" param=\"phase" no "\"/>" \
+ "<knob attach-x=\"" no "\" attach-y=\"10\" param=\"pan" no "\"/>" \
+ "<value attach-x=\"" no "\" attach-y=\"11\" param=\"pan" no "\"/>"
+
const char *organ_audio_module::get_gui_xml()
{
return
@@ -62,111 +76,23 @@ const char *organ_audio_module::get_gui_xml()
"<value param=\"master\"/>"
"</vbox>"
"</hbox>"
- "<table rows=\"10\" cols=\"9\">"
+ "<table rows=\"12\" cols=\"9\">"
"<label attach-x=\"0\" attach-y=\"1\" text=\"Level\"/>"
"<label attach-x=\"0\" attach-y=\"3\" text=\"Harmonic\"/>"
"<label attach-x=\"0\" attach-y=\"5\" text=\"Wave\"/>"
"<label attach-x=\"0\" attach-y=\"6\" text=\"Detune\"/>"
"<label attach-x=\"0\" attach-y=\"8\" text=\"Phase\"/>"
-
- "<label attach-x=\"1\" attach-y=\"0\" param=\"l1\"/>"
- "<vscale attach-x=\"1\" attach-y=\"1\" param=\"l1\"/>"
- "<value attach-x=\"1\" attach-y=\"2\" param=\"l1\"/>"
- "<knob attach-x=\"1\" attach-y=\"3\" param=\"f1\"/>"
- "<value attach-x=\"1\" attach-y=\"4\" param=\"f1\"/>"
- "<combo attach-x=\"1\" attach-y=\"5\" param=\"w1\"/>"
- "<knob attach-x=\"1\" attach-y=\"6\" param=\"detune1\"/>"
- "<value attach-x=\"1\" attach-y=\"7\" param=\"detune1\"/>"
- "<knob attach-x=\"1\" attach-y=\"8\" param=\"phase1\"/>"
- "<value attach-x=\"1\" attach-y=\"9\" param=\"phase1\"/>"
-
- "<label attach-x=\"2\" attach-y=\"0\" param=\"l2\"/>"
- "<vscale attach-x=\"2\" attach-y=\"1\" param=\"l2\"/>"
- "<value attach-x=\"2\" attach-y=\"2\" param=\"l2\"/>"
- "<knob attach-x=\"2\" attach-y=\"3\" param=\"f2\"/>"
- "<value attach-x=\"2\" attach-y=\"4\" param=\"f2\"/>"
- "<combo attach-x=\"2\" attach-y=\"5\" param=\"w2\"/>"
- "<knob attach-x=\"2\" attach-y=\"6\" param=\"detune2\"/>"
- "<value attach-x=\"2\" attach-y=\"7\" param=\"detune2\"/>"
- "<knob attach-x=\"2\" attach-y=\"8\" param=\"phase2\"/>"
- "<value attach-x=\"2\" attach-y=\"9\" param=\"phase2\"/>"
-
- "<label attach-x=\"3\" attach-y=\"0\" param=\"l3\"/>"
- "<vscale attach-x=\"3\" attach-y=\"1\" param=\"l3\"/>"
- "<value attach-x=\"3\" attach-y=\"2\" param=\"l3\"/>"
- "<knob attach-x=\"3\" attach-y=\"3\" param=\"f3\"/>"
- "<value attach-x=\"3\" attach-y=\"4\" param=\"f3\"/>"
- "<combo attach-x=\"3\" attach-y=\"5\" param=\"w3\"/>"
- "<knob attach-x=\"3\" attach-y=\"6\" param=\"detune3\"/>"
- "<value attach-x=\"3\" attach-y=\"7\" param=\"detune3\"/>"
- "<knob attach-x=\"3\" attach-y=\"8\" param=\"phase3\"/>"
- "<value attach-x=\"3\" attach-y=\"9\" param=\"phase3\"/>"
-
- "<label attach-x=\"4\" attach-y=\"0\" param=\"l4\"/>"
- "<vscale attach-x=\"4\" attach-y=\"1\" param=\"l4\"/>"
- "<value attach-x=\"4\" attach-y=\"2\" param=\"l4\"/>"
- "<knob attach-x=\"4\" attach-y=\"3\" param=\"f4\"/>"
- "<value attach-x=\"4\" attach-y=\"4\" param=\"f4\"/>"
- "<combo attach-x=\"4\" attach-y=\"5\" param=\"w4\"/>"
- "<knob attach-x=\"4\" attach-y=\"6\" param=\"detune4\"/>"
- "<value attach-x=\"4\" attach-y=\"7\" param=\"detune4\"/>"
- "<knob attach-x=\"4\" attach-y=\"8\" param=\"phase4\"/>"
- "<value attach-x=\"4\" attach-y=\"9\" param=\"phase4\"/>"
-
- "<label attach-x=\"5\" attach-y=\"0\" param=\"l5\"/>"
- "<vscale attach-x=\"5\" attach-y=\"1\" param=\"l5\"/>"
- "<value attach-x=\"5\" attach-y=\"2\" param=\"l5\"/>"
- "<knob attach-x=\"5\" attach-y=\"3\" param=\"f5\"/>"
- "<value attach-x=\"5\" attach-y=\"4\" param=\"f5\"/>"
- "<combo attach-x=\"5\" attach-y=\"5\" param=\"w5\"/>"
- "<knob attach-x=\"5\" attach-y=\"6\" param=\"detune5\"/>"
- "<value attach-x=\"5\" attach-y=\"7\" param=\"detune5\"/>"
- "<knob attach-x=\"5\" attach-y=\"8\" param=\"phase5\"/>"
- "<value attach-x=\"5\" attach-y=\"9\" param=\"phase5\"/>"
-
- "<label attach-x=\"6\" attach-y=\"0\" param=\"l6\"/>"
- "<vscale attach-x=\"6\" attach-y=\"1\" param=\"l6\"/>"
- "<value attach-x=\"6\" attach-y=\"2\" param=\"l6\"/>"
- "<knob attach-x=\"6\" attach-y=\"3\" param=\"f6\"/>"
- "<value attach-x=\"6\" attach-y=\"4\" param=\"f6\"/>"
- "<combo attach-x=\"6\" attach-y=\"5\" param=\"w6\"/>"
- "<knob attach-x=\"6\" attach-y=\"6\" param=\"detune6\"/>"
- "<value attach-x=\"6\" attach-y=\"7\" param=\"detune6\"/>"
- "<knob attach-x=\"6\" attach-y=\"8\" param=\"phase6\"/>"
- "<value attach-x=\"6\" attach-y=\"9\" param=\"phase6\"/>"
-
- "<label attach-x=\"7\" attach-y=\"0\" param=\"l7\"/>"
- "<vscale attach-x=\"7\" attach-y=\"1\" param=\"l7\"/>"
- "<value attach-x=\"7\" attach-y=\"2\" param=\"l7\"/>"
- "<knob attach-x=\"7\" attach-y=\"3\" param=\"f7\"/>"
- "<value attach-x=\"7\" attach-y=\"4\" param=\"f7\"/>"
- "<combo attach-x=\"7\" attach-y=\"5\" param=\"w7\"/>"
- "<knob attach-x=\"7\" attach-y=\"6\" param=\"detune7\"/>"
- "<value attach-x=\"7\" attach-y=\"7\" param=\"detune7\"/>"
- "<knob attach-x=\"7\" attach-y=\"8\" param=\"phase7\"/>"
- "<value attach-x=\"7\" attach-y=\"9\" param=\"phase7\"/>"
-
- "<label attach-x=\"8\" attach-y=\"0\" param=\"l8\"/>"
- "<vscale attach-x=\"8\" attach-y=\"1\" param=\"l8\"/>"
- "<value attach-x=\"8\" attach-y=\"2\" param=\"l8\"/>"
- "<knob attach-x=\"8\" attach-y=\"3\" param=\"f8\"/>"
- "<value attach-x=\"8\" attach-y=\"4\" param=\"f8\"/>"
- "<combo attach-x=\"8\" attach-y=\"5\" param=\"w8\"/>"
- "<knob attach-x=\"8\" attach-y=\"6\" param=\"detune8\"/>"
- "<value attach-x=\"8\" attach-y=\"7\" param=\"detune8\"/>"
- "<knob attach-x=\"8\" attach-y=\"8\" param=\"phase8\"/>"
- "<value attach-x=\"8\" attach-y=\"9\" param=\"phase8\"/>"
-
- "<label attach-x=\"9\" attach-y=\"0\" param=\"l9\"/>"
- "<vscale attach-x=\"9\" attach-y=\"1\" param=\"l9\"/>"
- "<value attach-x=\"9\" attach-y=\"2\" param=\"l9\"/>"
- "<knob attach-x=\"9\" attach-y=\"3\" param=\"f9\"/>"
- "<value attach-x=\"9\" attach-y=\"4\" param=\"f9\"/>"
- "<combo attach-x=\"9\" attach-y=\"5\" param=\"w9\"/>"
- "<knob attach-x=\"9\" attach-y=\"6\" param=\"detune9\"/>"
- "<value attach-x=\"9\" attach-y=\"7\" param=\"detune9\"/>"
- "<knob attach-x=\"9\" attach-y=\"8\" param=\"phase9\"/>"
- "<value attach-x=\"9\" attach-y=\"9\" param=\"phase9\"/>"
+ "<label attach-x=\"0\" attach-y=\"10\" text=\"Pan\"/>"
+
+ DRAWBAR_UI("1")
+ DRAWBAR_UI("2")
+ DRAWBAR_UI("3")
+ DRAWBAR_UI("4")
+ DRAWBAR_UI("5")
+ DRAWBAR_UI("6")
+ DRAWBAR_UI("7")
+ DRAWBAR_UI("8")
+ DRAWBAR_UI("9")
"</table>"
"</vbox>"
;
@@ -209,25 +135,35 @@ parameter_properties organ_audio_module::param_props[] = {
{ 0, 0, 9, 0, PF_ENUM | PF_SCALE_LINEAR | PF_CTL_COMBO, organ_wave_names, "w8", "Wave 8" },
{ 0, 0, 9, 0, PF_ENUM | PF_SCALE_LINEAR | PF_CTL_COMBO, organ_wave_names, "w9", "Wave 9" },
- { 0, -100,100, 401, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB, NULL, "detune1", "Detune 1" },
- { 0, -100,100, 401, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB, NULL, "detune2", "Detune 2" },
- { 0, -100,100, 401, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB, NULL, "detune3", "Detune 3" },
- { 0, -100,100, 401, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB, NULL, "detune4", "Detune 4" },
- { 0, -100,100, 401, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB, NULL, "detune5", "Detune 5" },
- { 0, -100,100, 401, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB, NULL, "detune6", "Detune 6" },
- { 0, -100,100, 401, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB, NULL, "detune7", "Detune 7" },
- { 0, -100,100, 401, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB, NULL, "detune8", "Detune 8" },
- { 0, -100,100, 401, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB, NULL, "detune9", "Detune 9" },
-
- { 0, 0,360, 361, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB, NULL, "phase1", "Phase 1" },
- { 0, 0,360, 361, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB, NULL, "phase2", "Phase 2" },
- { 0, 0,360, 361, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB, NULL, "phase3", "Phase 3" },
- { 0, 0,360, 361, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB, NULL, "phase4", "Phase 4" },
- { 0, 0,360, 361, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB, NULL, "phase5", "Phase 5" },
- { 0, 0,360, 361, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB, NULL, "phase6", "Phase 6" },
- { 0, 0,360, 361, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB, NULL, "phase7", "Phase 7" },
- { 0, 0,360, 361, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB, NULL, "phase8", "Phase 8" },
- { 0, 0,360, 361, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB, NULL, "phase9", "Phase 9" },
+ { 0, -100,100, 401, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_CENTS, NULL, "detune1", "Detune 1" },
+ { 0, -100,100, 401, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_CENTS, NULL, "detune2", "Detune 2" },
+ { 0, -100,100, 401, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_CENTS, NULL, "detune3", "Detune 3" },
+ { 0, -100,100, 401, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_CENTS, NULL, "detune4", "Detune 4" },
+ { 0, -100,100, 401, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_CENTS, NULL, "detune5", "Detune 5" },
+ { 0, -100,100, 401, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_CENTS, NULL, "detune6", "Detune 6" },
+ { 0, -100,100, 401, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_CENTS, NULL, "detune7", "Detune 7" },
+ { 0, -100,100, 401, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_CENTS, NULL, "detune8", "Detune 8" },
+ { 0, -100,100, 401, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_CENTS, NULL, "detune9", "Detune 9" },
+
+ { 0, 0,360, 361, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_DEG, NULL, "phase1", "Phase 1" },
+ { 0, 0,360, 361, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_DEG, NULL, "phase2", "Phase 2" },
+ { 0, 0,360, 361, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_DEG, NULL, "phase3", "Phase 3" },
+ { 0, 0,360, 361, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_DEG, NULL, "phase4", "Phase 4" },
+ { 0, 0,360, 361, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_DEG, NULL, "phase5", "Phase 5" },
+ { 0, 0,360, 361, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_DEG, NULL, "phase6", "Phase 6" },
+ { 0, 0,360, 361, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_DEG, NULL, "phase7", "Phase 7" },
+ { 0, 0,360, 361, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_DEG, NULL, "phase8", "Phase 8" },
+ { 0, 0,360, 361, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_DEG, NULL, "phase9", "Phase 9" },
+
+ { 0, -1, 1, 201, PF_FLOAT | PF_SCALE_PERC | PF_CTL_KNOB, NULL, "pan1", "Pan 1" },
+ { 0, -1, 1, 201, PF_FLOAT | PF_SCALE_PERC | PF_CTL_KNOB, NULL, "pan2", "Pan 2" },
+ { 0, -1, 1, 201, PF_FLOAT | PF_SCALE_PERC | PF_CTL_KNOB, NULL, "pan3", "Pan 3" },
+ { 0, -1, 1, 201, PF_FLOAT | PF_SCALE_PERC | PF_CTL_KNOB, NULL, "pan4", "Pan 4" },
+ { 0, -1, 1, 201, PF_FLOAT | PF_SCALE_PERC | PF_CTL_KNOB, NULL, "pan5", "Pan 5" },
+ { 0, -1, 1, 201, PF_FLOAT | PF_SCALE_PERC | PF_CTL_KNOB, NULL, "pan6", "Pan 6" },
+ { 0, -1, 1, 201, PF_FLOAT | PF_SCALE_PERC | PF_CTL_KNOB, NULL, "pan7", "Pan 7" },
+ { 0, -1, 1, 201, PF_FLOAT | PF_SCALE_PERC | PF_CTL_KNOB, NULL, "pan8", "Pan 8" },
+ { 0, -1, 1, 201, PF_FLOAT | PF_SCALE_PERC | PF_CTL_KNOB, NULL, "pan9", "Pan 9" },
{ 1, 0, 1, 2, PF_BOOL | PF_CTL_TOGGLE, NULL, "foldover", "Foldover" },
{ 200, 10, 3000, 100, PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_MSEC, NULL, "perc_decay", "Perc. decay" },
--
calf audio plugins packaging
More information about the pkg-multimedia-commits
mailing list