[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