Browse Source

ditched roomsize smoothing because of cpu reasons

pull/2/merge
nino de wit 9 years ago
parent
commit
4713ac55cb
6 changed files with 455 additions and 14763 deletions
  1. +0
    -656
      plugins/shirotest/gen_exported.cpp
  2. +0
    -37
      plugins/shirotest/gen_exported.h
  3. +0
    -6352
      plugins/shirotest/shirotest.gendsp
  4. +0
    -7202
      plugins/shirotest/shirotest.maxpat
  5. +345
    -351
      plugins/shiroverb/gen_exported.cpp
  6. +110
    -165
      plugins/shiroverb/shiroverb.maxpat

+ 0
- 656
plugins/shirotest/gen_exported.cpp View File

@@ -1,656 +0,0 @@
#include "gen_exported.h"

namespace gen_exported {


/*******************************************************************************************************************
Copyright (c) 2012 Cycling '74

Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies
or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*******************************************************************************************************************/


// global noise generator
Noise noise;
static const int GENLIB_LOOPCOUNT_BAIL = 100000;


// The State struct contains all the state and procedures for the gendsp kernel
typedef struct State {
CommonState __commonstate;
Delay m_delay_21;
Delay m_delay_13;
Delay m_delay_14;
Delay m_delay_12;
Delay m_delay_11;
Delay m_delay_23;
Delay m_delay_15;
Delay m_delay_17;
Delay m_delay_16;
Delay m_delay_19;
Delay m_delay_18;
Delay m_delay_20;
Delay m_delay_22;
Delta m_delta_39;
Delta m_delta_36;
Delta m_delta_42;
Delta m_delta_33;
Phasor m_phasor_32;
Sah m_sah_37;
Sah m_sah_35;
Sah m_sah_38;
Sah m_sah_41;
Sah m_sah_40;
Sah m_sah_34;
Sah m_sah_44;
Sah m_sah_43;
double m_history_5;
double m_history_6;
double m_history_7;
double m_history_10;
double m_history_4;
double m_y_2;
double m_history_3;
double samplerate;
double m_history_1;
double m_history_9;
double m_history_8;
double m_shimmer_31;
double samples_to_seconds;
double m_roomsize_25;
double m_damping_24;
double m_decay_27;
double m_tone_26;
double m_bandwidth_29;
double m_mix_30;
double m_ratio_28;
int vectorsize;
int __exception;
// re-initialize all member variables;
inline void reset(double __sr, int __vs) {
__exception = 0;
vectorsize = __vs;
samplerate = __sr;
m_history_1 = 0;
m_y_2 = 0;
m_history_3 = 0;
m_history_4 = 0;
m_history_5 = 0;
m_history_6 = 0;
m_history_7 = 0;
m_history_8 = 0;
m_history_9 = 0;
m_history_10 = 0;
m_delay_11.reset("m_delay_11", 7000);
m_delay_12.reset("m_delay_12", 5000);
m_delay_13.reset("m_delay_13", 6000);
m_delay_14.reset("m_delay_14", 48000);
m_delay_15.reset("m_delay_15", 96000);
m_delay_16.reset("m_delay_16", 16000);
m_delay_17.reset("m_delay_17", 15000);
m_delay_18.reset("m_delay_18", 12000);
m_delay_19.reset("m_delay_19", 10000);
m_delay_20.reset("m_delay_20", 48000);
m_delay_21.reset("m_delay_21", 48000);
m_delay_22.reset("m_delay_22", 48000);
m_delay_23.reset("m_delay_23", 48000);
m_damping_24 = 50;
m_roomsize_25 = 150;
m_tone_26 = 1500;
m_decay_27 = 50;
m_ratio_28 = 2;
m_bandwidth_29 = 75;
m_mix_30 = 50;
m_shimmer_31 = 50;
samples_to_seconds = (1 / samplerate);
m_phasor_32.reset(0);
m_delta_33.reset(0);
m_sah_34.reset(0);
m_sah_35.reset(0);
m_delta_36.reset(0);
m_sah_37.reset(0);
m_sah_38.reset(0);
m_delta_39.reset(0);
m_sah_40.reset(0);
m_sah_41.reset(0);
m_delta_42.reset(0);
m_sah_43.reset(0);
m_sah_44.reset(0);
genlib_reset_complete(this);
};
// the signal processing routine;
inline int perform(t_sample ** __ins, t_sample ** __outs, int __n) {
vectorsize = __n;
const t_sample * __in1 = __ins[0];
t_sample * __out1 = __outs[0];
t_sample * __out2 = __outs[1];
if (__exception) {
return __exception;
} else if (( (__in1 == 0) || (__out1 == 0) || (__out2 == 0) )) {
__exception = GENLIB_ERR_NULL_BUFFER;
return __exception;
};
double mul_11 = (m_mix_30 * 0.01);
double mul_10 = (m_damping_24 * 0.01);
double mul_9 = (m_bandwidth_29 * 0.01);
double rsub_8 = (1 - mul_9);
double mul_12 = (m_shimmer_31 * 0.01);
double expr_250 = safediv(((m_tone_26 * 2) * 3.1415926535898), 48000);
double sin_16 = sin(expr_250);
double clamp_17 = ((sin_16 <= 1e-05) ? 1e-05 : ((sin_16 >= 0.99999) ? 0.99999 : sin_16));
double expr_260 = safediv((m_roomsize_25 * 48000), 340);
double mul_216 = (expr_260 * 0.7071);
double mul_218 = (expr_260 * 1);
double mul_215 = (expr_260 * 0.63245);
double mul_217 = (expr_260 * 0.81649);
double expr_249 = safepow(1.0418, m_decay_27);
double expr_259 = safepow(0.001, safediv(1, (expr_249 * 48000)));
double expr_252 = (-safepow(expr_259, mul_216));
double expr_258 = (-safepow(expr_259, mul_218));
double expr_251 = (-safepow(expr_259, mul_215));
double expr_253 = (-safepow(expr_259, mul_217));
double mul_212 = (expr_260 * 0.000527);
int int_211 = int(mul_212);
double mul_189 = (int_211 * 400.600006);
double mul_168 = (int_211 * 419.5);
double mul_196 = (int_211 * 568.299988);
double add_155 = (expr_260 + 5);
double expr_254 = safepow(expr_259, add_155);
double mul_175 = (int_211 * 566.700012);
double rsub_67 = (1 - m_ratio_28);
double mul_66 = (rsub_67 * 10);
samples_to_seconds = (1 / samplerate);
double mul_161 = (expr_260 * 0.41);
double add_158 = (mul_161 + 5);
double expr_257 = safepow(expr_259, add_158);
double mul_160 = (expr_260 * 0.3);
double add_157 = (mul_160 + 5);
double expr_256 = safepow(expr_259, add_157);
double mul_159 = (expr_260 * 0.155);
double add_156 = (mul_159 + 5);
double expr_255 = safepow(expr_259, add_156);
double mul_210 = (expr_260 * 0.110732);
double mul_203 = (int_211 * 162.100006);
double mul_182 = (int_211 * 144.800003);
double mul_6 = (m_decay_27 * 2);
double clamp_1 = ((mul_6 <= 0) ? 0 : ((mul_6 >= 100) ? 100 : mul_6));
double mul_5 = (clamp_1 * 0.01);
double atodb_4 = atodb(mul_5);
double sub_3 = (atodb_4 - 9);
double dbtoa_2 = dbtoa(sub_3);
// the main sample loop;
while ((__n--)) {
const double in1 = (*(__in1++));
double noise_19 = noise();
double abs_36 = fabs(noise_19);
double mul_42 = (abs_36 * 0.25);
double noise_20 = noise();
double abs_37 = fabs(noise_20);
double mul_45 = (abs_37 * 0.25);
double noise_21 = noise();
double abs_38 = fabs(noise_21);
double mul_48 = (abs_38 * 0.25);
double noise_18 = noise();
double abs_35 = fabs(noise_18);
double mul_39 = (abs_35 * 0.25);
double tap_135 = m_delay_23.read_linear(mul_216);
double tap_223 = m_delay_22.read_linear(mul_218);
double tap_129 = m_delay_21.read_linear(mul_215);
double tap_141 = m_delay_20.read_linear(mul_217);
double mul_131 = (tap_135 * expr_252);
double mix_284 = (mul_131 + (mul_10 * (m_history_10 - mul_131)));
double mix_133 = mix_284;
double mul_214 = (tap_223 * expr_258);
double mix_285 = (mul_214 + (mul_10 * (m_history_9 - mul_214)));
double mix_221 = mix_285;
double mul_125 = (tap_129 * expr_251);
double mix_286 = (mul_125 + (mul_10 * (m_history_8 - mul_125)));
double mix_127 = mix_286;
double mul_137 = (tap_141 * expr_253);
double mix_287 = (mul_137 + (mul_10 * (m_history_7 - mul_137)));
double mix_139 = mix_287;
double tap_188 = m_delay_19.read_linear(mul_189);
double mul_186 = (tap_188 * 0.625);
double tap_167 = m_delay_18.read_linear(mul_168);
double mul_165 = (tap_167 * 0.625);
double tap_195 = m_delay_17.read_linear(mul_196);
double add_119 = (mix_221 + mix_139);
double add_117 = (mix_133 + mix_127);
double sub_116 = (add_119 - add_117);
double mul_98 = (sub_116 * 0.5);
double add_112 = (add_119 + add_117);
double mul_95 = (add_112 * 0.5);
double tap_174 = m_delay_16.read_linear(mul_175);
double phasor_85 = m_phasor_32(mul_66, samples_to_seconds);
double add_65 = ((m_history_6 + phasor_85) + 0.5);
double mod_64 = safemod(add_65, 1);
double delta_44 = m_delta_33(mod_64);
double sah_24 = m_sah_34(mul_42, delta_44, 0);
int sah_43 = m_sah_35(4800, delta_44, 0);
double mul_32 = (sah_43 * mod_64);
double sub_63 = (mod_64 - 0.5);
double mul_62 = (sub_63 * 3.1415926535898);
double cos_61 = cos(mul_62);
double mul_51 = (cos_61 * cos_61);
double add_79 = ((m_history_5 + phasor_85) + 0.25);
double mod_78 = safemod(add_79, 1);
double delta_47 = m_delta_36(mod_78);
double sah_26 = m_sah_37(mul_45, delta_47, 0);
int sah_46 = m_sah_38(4800, delta_47, 0);
double mul_33 = (sah_46 * mod_78);
double sub_77 = (mod_78 - 0.5);
double mul_76 = (sub_77 * 3.1415926535898);
double cos_75 = cos(mul_76);
double mul_52 = (cos_75 * cos_75);
double add_84 = ((m_history_4 + phasor_85) + 0);
double mod_83 = safemod(add_84, 1);
double delta_29 = m_delta_39(mod_83);
double sah_28 = m_sah_40(mul_48, delta_29, 0);
int sah_49 = m_sah_41(4800, delta_29, 0);
double mul_34 = (sah_49 * mod_83);
double sub_82 = (mod_83 - 0.5);
double mul_81 = (sub_82 * 3.1415926535898);
double cos_80 = cos(mul_81);
double mul_53 = (cos_80 * cos_80);
double add_59 = ((m_history_3 + phasor_85) + 0.75);
double mod_58 = safemod(add_59, 1);
double delta_41 = m_delta_42(mod_58);
double sah_22 = m_sah_43(mul_39, delta_41, 0);
int sah_40 = m_sah_44(4800, delta_41, 0);
double mul_31 = (sah_40 * mod_58);
double tap_71 = m_delay_15.read_linear(mul_34);
double tap_72 = m_delay_15.read_linear(mul_33);
double tap_73 = m_delay_15.read_linear(mul_32);
double tap_74 = m_delay_15.read_linear(mul_31);
double mul_60 = (tap_73 * mul_51);
double mul_68 = (tap_72 * mul_52);
double mul_69 = (tap_71 * mul_53);
double sub_57 = (mod_58 - 0.5);
double mul_56 = (sub_57 * 3.1415926535898);
double cos_55 = cos(mul_56);
double mul_50 = (cos_55 * cos_55);
double mul_54 = (tap_74 * mul_50);
double add_289 = (((mul_69 + mul_68) + mul_60) + mul_54);
double mix_288 = (m_y_2 + (clamp_17 * (add_289 - m_y_2)));
double mix_14 = mix_288;
double mix_290 = (in1 + (mul_12 * (mix_14 - in1)));
double mix_86 = mix_290;
double mul_89 = (mix_86 * 0.707);
double mix_291 = (mul_89 + (rsub_8 * (m_history_1 - mul_89)));
double mix_225 = mix_291;
double sub_118 = (mix_221 - mix_139);
double sub_115 = (mix_133 - mix_127);
double sub_114 = (sub_118 - sub_115);
double mul_97 = (sub_114 * 0.5);
double add_113 = (sub_118 + sub_115);
double rsub_111 = (0 - add_113);
double mul_96 = (rsub_111 * 0.5);
double mul_193 = (tap_195 * 0.625);
double tap_143 = m_delay_14.read_linear(add_158);
double tap_144 = m_delay_14.read_linear(add_157);
double tap_145 = m_delay_14.read_linear(add_156);
double tap_146 = m_delay_14.read_linear(add_155);
double mul_153 = (tap_143 * expr_257);
double add_123 = (mul_98 + mul_153);
double mul_147 = (tap_146 * expr_254);
double add_120 = (mul_95 + mul_147);
double mul_151 = (tap_144 * expr_256);
double add_122 = (mul_97 + mul_151);
double mul_149 = (tap_145 * expr_255);
double add_121 = (mul_96 + mul_149);
double mul_172 = (tap_174 * 0.625);
double tap_209 = m_delay_13.read_cubic(mul_210);
double tap_202 = m_delay_12.read_linear(mul_203);
double mul_207 = (tap_209 * 0.75);
double sub_206 = (mix_225 - mul_207);
double mul_205 = (sub_206 * 0.75);
double add_204 = (mul_205 + tap_209);
double tap_181 = m_delay_11.read_linear(mul_182);
double mul_200 = (tap_202 * 0.75);
double mul_179 = (tap_181 * 0.75);
double mul_106 = (mul_153 * mul_5);
double mul_104 = (mul_149 * mul_5);
double add_92 = (mul_106 + mul_104);
double mul_105 = (mul_151 * mul_5);
double mul_103 = (mul_147 * mul_5);
double add_91 = (mul_105 + mul_103);
double sub_101 = (add_92 - add_91);
double mul_110 = (mul_98 * dbtoa_2);
double mul_108 = (mul_96 * dbtoa_2);
double add_94 = (mul_110 + mul_108);
double mul_109 = (mul_97 * dbtoa_2);
double mul_107 = (mul_95 * dbtoa_2);
double add_93 = (mul_109 + mul_107);
double sub_102 = (add_94 - add_93);
double add_88 = (sub_102 + sub_101);
double add_100 = (add_88 + mix_86);
double sub_199 = (add_100 - mul_200);
double mul_198 = (sub_199 * 0.75);
double add_197 = (mul_198 + tap_202);
double sub_192 = (add_197 - mul_193);
double mul_191 = (sub_192 * 0.625);
double add_190 = (mul_191 + tap_195);
double sub_185 = (add_190 - mul_186);
double mul_184 = (sub_185 * 0.625);
double add_183 = (mul_184 + tap_188);
double mul_99 = (add_183 * mul_11);
double out1 = (in1 + mul_99);
double add_90 = (add_88 + mix_86);
double sub_178 = (add_90 - mul_179);
double mul_177 = (sub_178 * 0.75);
double add_176 = (mul_177 + tap_181);
double sub_171 = (add_176 - mul_172);
double mul_170 = (sub_171 * 0.625);
double add_169 = (mul_170 + tap_174);
double sub_164 = (add_169 - mul_165);
double mul_163 = (sub_164 * 0.625);
double add_162 = (mul_163 + tap_167);
double mul_87 = (add_162 * mul_11);
double out2 = (in1 + mul_87);
double history_132_next_274 = mix_133;
double history_220_next_275 = mix_221;
double history_126_next_276 = mix_127;
double history_138_next_277 = mix_139;
double history_25_next_278 = sah_24;
double history_27_next_279 = sah_26;
double history_30_next_280 = sah_28;
double history_23_next_281 = sah_22;
double y0_next_282 = mix_14;
double history_224_next_283 = mix_225;
m_delay_23.write(add_121);
m_delay_22.write(add_123);
m_delay_21.write(add_120);
m_delay_20.write(add_122);
m_delay_19.write(sub_185);
m_delay_18.write(sub_164);
m_delay_17.write(sub_192);
m_delay_16.write(sub_171);
m_delay_15.write(in1);
m_delay_14.write(add_204);
m_delay_13.write(sub_206);
m_delay_12.write(sub_199);
m_delay_11.write(sub_178);
m_history_10 = history_132_next_274;
m_history_9 = history_220_next_275;
m_history_8 = history_126_next_276;
m_history_7 = history_138_next_277;
m_history_6 = history_25_next_278;
m_history_5 = history_27_next_279;
m_history_4 = history_30_next_280;
m_history_3 = history_23_next_281;
m_y_2 = y0_next_282;
m_history_1 = history_224_next_283;
m_delay_11.step();
m_delay_12.step();
m_delay_13.step();
m_delay_14.step();
m_delay_15.step();
m_delay_16.step();
m_delay_17.step();
m_delay_18.step();
m_delay_19.step();
m_delay_20.step();
m_delay_21.step();
m_delay_22.step();
m_delay_23.step();
// assign results to output buffer;
(*(__out1++)) = out1;
(*(__out2++)) = out2;
};
return __exception;
};
inline void set_damping(double _value) {
m_damping_24 = (_value < 0 ? 0 : (_value > 100 ? 100 : _value));
};
inline void set_roomsize(double _value) {
m_roomsize_25 = (_value < 1 ? 1 : (_value > 300 ? 300 : _value));
};
inline void set_tone(double _value) {
m_tone_26 = (_value < 500 ? 500 : (_value > 6000 ? 6000 : _value));
};
inline void set_decay(double _value) {
m_decay_27 = (_value < 1 ? 1 : (_value > 100 ? 100 : _value));
};
inline void set_ratio(double _value) {
m_ratio_28 = (_value < 0.5 ? 0.5 : (_value > 2 ? 2 : _value));
};
inline void set_bandwidth(double _value) {
m_bandwidth_29 = (_value < 0 ? 0 : (_value > 100 ? 100 : _value));
};
inline void set_mix(double _value) {
m_mix_30 = (_value < 0 ? 0 : (_value > 100 ? 100 : _value));
};
inline void set_shimmer(double _value) {
m_shimmer_31 = (_value < 0 ? 0 : (_value > 100 ? 100 : _value));
};
} State;


///
/// Configuration for the genlib API
///

/// Number of signal inputs and outputs

int gen_kernel_numins = 1;
int gen_kernel_numouts = 2;

int num_inputs() { return gen_kernel_numins; }
int num_outputs() { return gen_kernel_numouts; }
int num_params() { return 8; }

/// Assistive lables for the signal inputs and outputs

const char * gen_kernel_innames[] = { "in1" };
const char * gen_kernel_outnames[] = { "out1", "out2" };

/// Invoke the signal process of a State object

int perform(CommonState *cself, t_sample **ins, long numins, t_sample **outs, long numouts, long n) {
State * self = (State *)cself;
return self->perform(ins, outs, n);
}

/// Reset all parameters and stateful operators of a State object

void reset(CommonState *cself) {
State * self = (State *)cself;
self->reset(cself->sr, cself->vs);
}

/// Set a parameter of a State object

void setparameter(CommonState *cself, long index, double value, void *ref) {
State * self = (State *)cself;
switch (index) {
case 0: self->set_damping(value); break;
case 1: self->set_roomsize(value); break;
case 2: self->set_tone(value); break;
case 3: self->set_decay(value); break;
case 4: self->set_ratio(value); break;
case 5: self->set_bandwidth(value); break;
case 6: self->set_mix(value); break;
case 7: self->set_shimmer(value); break;
default: break;
}
}

/// Get the value of a parameter of a State object

void getparameter(CommonState *cself, long index, double *value) {
State *self = (State *)cself;
switch (index) {
case 0: *value = self->m_damping_24; break;
case 1: *value = self->m_roomsize_25; break;
case 2: *value = self->m_tone_26; break;
case 3: *value = self->m_decay_27; break;
case 4: *value = self->m_ratio_28; break;
case 5: *value = self->m_bandwidth_29; break;
case 6: *value = self->m_mix_30; break;
case 7: *value = self->m_shimmer_31; break;
default: break;
}
}

/// Allocate and configure a new State object and it's internal CommonState:

void * create(double sr, long vs) {
State *self = new State;
self->reset(sr, vs);
ParamInfo *pi;
self->__commonstate.inputnames = gen_kernel_innames;
self->__commonstate.outputnames = gen_kernel_outnames;
self->__commonstate.numins = gen_kernel_numins;
self->__commonstate.numouts = gen_kernel_numouts;
self->__commonstate.sr = sr;
self->__commonstate.vs = vs;
self->__commonstate.params = (ParamInfo *)genlib_sysmem_newptr(8 * sizeof(ParamInfo));
self->__commonstate.numparams = 8;
// initialize parameter 0 ("m_damping_24")
pi = self->__commonstate.params + 0;
pi->name = "damping";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_damping_24;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 0;
pi->outputmax = 100;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 1 ("m_roomsize_25")
pi = self->__commonstate.params + 1;
pi->name = "roomsize";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_roomsize_25;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 1;
pi->outputmax = 300;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 2 ("m_tone_26")
pi = self->__commonstate.params + 2;
pi->name = "tone";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_tone_26;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 500;
pi->outputmax = 6000;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 3 ("m_decay_27")
pi = self->__commonstate.params + 3;
pi->name = "decay";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_decay_27;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 1;
pi->outputmax = 100;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 4 ("m_ratio_28")
pi = self->__commonstate.params + 4;
pi->name = "ratio";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_ratio_28;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 0.5;
pi->outputmax = 2;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 5 ("m_bandwidth_29")
pi = self->__commonstate.params + 5;
pi->name = "bandwidth";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_bandwidth_29;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 0;
pi->outputmax = 100;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 6 ("m_mix_30")
pi = self->__commonstate.params + 6;
pi->name = "mix";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_mix_30;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 0;
pi->outputmax = 100;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 7 ("m_shimmer_31")
pi = self->__commonstate.params + 7;
pi->name = "shimmer";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_shimmer_31;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 0;
pi->outputmax = 100;
pi->exp = 0;
pi->units = ""; // no units defined
return self;
}

/// Release all resources and memory used by a State object:

void destroy(CommonState *cself) {
State * self = (State *)cself;
genlib_sysmem_freeptr(cself->params);
delete self;
}


} // gen_exported::

+ 0
- 37
plugins/shirotest/gen_exported.h View File

@@ -1,37 +0,0 @@
/*******************************************************************************************************************
Copyright (c) 2012 Cycling '74

Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies
or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*******************************************************************************************************************/


#include "genlib.h"
#include "genlib_exportfunctions.h"
#include "genlib_ops.h"

namespace gen_exported {

int num_inputs();
int num_outputs();
int num_params();
int perform(CommonState *cself, t_sample **ins, long numins, t_sample **outs, long numouts, long n);
void reset(CommonState *cself);
void setparameter(CommonState *cself, long index, double value, void *ref);
void getparameter(CommonState *cself, long index, double *value);
void * create(double sr, long vs);
void destroy(CommonState *cself);

} // gen_exported::

+ 0
- 6352
plugins/shirotest/shirotest.gendsp
File diff suppressed because it is too large
View File


+ 0
- 7202
plugins/shirotest/shirotest.maxpat
File diff suppressed because it is too large
View File


+ 345
- 351
plugins/shiroverb/gen_exported.cpp View File

@@ -31,37 +31,36 @@ static const int GENLIB_LOOPCOUNT_BAIL = 100000;
// The State struct contains all the state and procedures for the gendsp kernel
typedef struct State {
CommonState __commonstate;
Delay m_delay_22;
Delay m_delay_14;
Delay m_delay_15;
Delay m_delay_21;
Delay m_delay_13;
Delay m_delay_14;
Delay m_delay_12;
Delay m_delay_11;
Delay m_delay_23;
Delay m_delay_15;
Delay m_delay_17;
Delay m_delay_16;
Delay m_delay_19;
Delay m_delay_18;
Delay m_delay_17;
Delay m_delay_20;
Delay m_delay_19;
Delay m_delay_21;
Delay m_delay_24;
Delta m_delta_34;
Delta m_delta_43;
Delta m_delta_37;
Delta m_delta_40;
Phasor m_phasor_33;
Sah m_sah_42;
Sah m_sah_41;
Sah m_sah_39;
Sah m_sah_36;
Sah m_sah_38;
Delay m_delay_22;
Delta m_delta_39;
Delta m_delta_36;
Delta m_delta_42;
Delta m_delta_33;
Phasor m_phasor_32;
Sah m_sah_37;
Sah m_sah_35;
Sah m_sah_38;
Sah m_sah_41;
Sah m_sah_40;
Sah m_sah_34;
Sah m_sah_44;
Sah m_sah_45;
double m_history_10;
Sah m_sah_43;
double m_history_5;
double m_history_6;
double m_history_7;
double m_smth_11;
double m_history_10;
double m_history_4;
double m_y_2;
double m_history_3;
@@ -69,15 +68,15 @@ typedef struct State {
double m_history_1;
double m_history_9;
double m_history_8;
double m_tone_32;
double m_tone_31;
double samples_to_seconds;
double m_shimmer_26;
double m_roomsize_25;
double m_damping_28;
double m_decay_27;
double m_decay_25;
double m_shimmer_24;
double m_mix_27;
double m_damping_26;
double m_roomsize_29;
double m_bandwidth_30;
double m_mix_31;
double m_ratio_29;
double m_ratio_28;
int vectorsize;
int __exception;
// re-initialize all member variables;
@@ -95,42 +94,41 @@ typedef struct State {
m_history_8 = 0;
m_history_9 = 0;
m_history_10 = 0;
m_smth_11 = 0;
m_delay_12.reset("m_delay_12", 5000);
m_delay_13.reset("m_delay_13", 7000);
m_delay_14.reset("m_delay_14", 6000);
m_delay_15.reset("m_delay_15", 48000);
m_delay_16.reset("m_delay_16", 15000);
m_delay_17.reset("m_delay_17", 16000);
m_delay_18.reset("m_delay_18", 96000);
m_delay_19.reset("m_delay_19", 10000);
m_delay_20.reset("m_delay_20", 12000);
m_delay_11.reset("m_delay_11", 5000);
m_delay_12.reset("m_delay_12", 7000);
m_delay_13.reset("m_delay_13", 6000);
m_delay_14.reset("m_delay_14", 48000);
m_delay_15.reset("m_delay_15", 15000);
m_delay_16.reset("m_delay_16", 16000);
m_delay_17.reset("m_delay_17", 96000);
m_delay_18.reset("m_delay_18", 10000);
m_delay_19.reset("m_delay_19", 12000);
m_delay_20.reset("m_delay_20", 48000);
m_delay_21.reset("m_delay_21", 48000);
m_delay_22.reset("m_delay_22", 48000);
m_delay_23.reset("m_delay_23", 48000);
m_delay_24.reset("m_delay_24", 48000);
m_roomsize_25 = 150;
m_shimmer_26 = 50;
m_decay_27 = 50;
m_damping_28 = 50;
m_ratio_29 = 2;
m_shimmer_24 = 50;
m_decay_25 = 50;
m_damping_26 = 50;
m_mix_27 = 50;
m_ratio_28 = 2;
m_roomsize_29 = 150;
m_bandwidth_30 = 75;
m_mix_31 = 50;
m_tone_32 = 1500;
m_tone_31 = 1500;
samples_to_seconds = (1 / samplerate);
m_phasor_33.reset(0);
m_delta_34.reset(0);
m_phasor_32.reset(0);
m_delta_33.reset(0);
m_sah_34.reset(0);
m_sah_35.reset(0);
m_sah_36.reset(0);
m_delta_37.reset(0);
m_delta_36.reset(0);
m_sah_37.reset(0);
m_sah_38.reset(0);
m_sah_39.reset(0);
m_delta_40.reset(0);
m_delta_39.reset(0);
m_sah_40.reset(0);
m_sah_41.reset(0);
m_sah_42.reset(0);
m_delta_43.reset(0);
m_delta_42.reset(0);
m_sah_43.reset(0);
m_sah_44.reset(0);
m_sah_45.reset(0);
genlib_reset_complete(this);
};
@@ -148,260 +146,257 @@ typedef struct State {
return __exception;
};
double mul_11 = (m_damping_28 * 0.01);
double expr_239 = safediv((m_roomsize_25 * 48000), 340);
double mul_12 = (m_mix_31 * 0.01);
double mul_10 = (m_bandwidth_30 * 0.01);
double rsub_9 = (1 - mul_10);
double expr_229 = safediv(((m_tone_32 * 2) * 3.1415926535898), 48000);
double sin_17 = sin(expr_229);
double clamp_18 = ((sin_17 <= 1e-05) ? 1e-05 : ((sin_17 >= 0.99999) ? 0.99999 : sin_17));
double mul_13 = (m_shimmer_26 * 0.01);
double expr_228 = safepow(1.0418, m_decay_27);
double expr_238 = safepow(0.001, safediv(1, (expr_228 * 48000)));
double rsub_68 = (1 - m_ratio_29);
double mul_67 = (rsub_68 * 10);
double mul_10 = (m_damping_26 * 0.01);
double mul_11 = (m_mix_27 * 0.01);
double mul_9 = (m_bandwidth_30 * 0.01);
double rsub_8 = (1 - mul_9);
double expr_228 = safediv(((m_tone_31 * 2) * 3.1415926535898), 48000);
double sin_16 = sin(expr_228);
double clamp_17 = ((sin_16 <= 1e-05) ? 1e-05 : ((sin_16 >= 0.99999) ? 0.99999 : sin_16));
double mul_12 = (m_shimmer_24 * 0.01);
double expr_238 = safediv((m_roomsize_29 * 48000), 340);
double mul_215 = (expr_238 * 0.63245);
double mul_216 = (expr_238 * 0.7071);
double mul_218 = (expr_238 * 1);
double mul_217 = (expr_238 * 0.81649);
double expr_227 = safepow(1.0418, m_decay_25);
double expr_237 = safepow(0.001, safediv(1, (expr_227 * 48000)));
double expr_229 = (-safepow(expr_237, mul_215));
double expr_230 = (-safepow(expr_237, mul_216));
double expr_236 = (-safepow(expr_237, mul_218));
double expr_231 = (-safepow(expr_237, mul_217));
double mul_212 = (expr_238 * 0.000527);
int int_211 = int(mul_212);
double mul_168 = (int_211 * 419.5);
double mul_189 = (int_211 * 400.600006);
double rsub_67 = (1 - m_ratio_28);
double mul_66 = (rsub_67 * 10);
samples_to_seconds = (1 / samplerate);
double mul_7 = (m_decay_27 * 2);
double clamp_2 = ((mul_7 <= 0) ? 0 : ((mul_7 >= 100) ? 100 : mul_7));
double mul_6 = (clamp_2 * 0.01);
double atodb_5 = atodb(mul_6);
double sub_4 = (atodb_5 - 9);
double dbtoa_3 = dbtoa(sub_4);
double add_155 = (expr_238 + 5);
double expr_232 = safepow(expr_237, add_155);
double mul_175 = (int_211 * 566.700012);
double mul_196 = (int_211 * 568.299988);
double mul_161 = (expr_238 * 0.41);
double add_158 = (mul_161 + 5);
double expr_235 = safepow(expr_237, add_158);
double mul_160 = (expr_238 * 0.3);
double add_157 = (mul_160 + 5);
double expr_234 = safepow(expr_237, add_157);
double mul_159 = (expr_238 * 0.155);
double add_156 = (mul_159 + 5);
double expr_233 = safepow(expr_237, add_156);
double mul_210 = (expr_238 * 0.110732);
double mul_182 = (int_211 * 144.800003);
double mul_203 = (int_211 * 162.100006);
double mul_6 = (m_decay_25 * 2);
double clamp_1 = ((mul_6 <= 0) ? 0 : ((mul_6 >= 100) ? 100 : mul_6));
double mul_5 = (clamp_1 * 0.01);
double atodb_4 = atodb(mul_5);
double sub_3 = (atodb_4 - 9);
double dbtoa_2 = dbtoa(sub_3);
// the main sample loop;
while ((__n--)) {
const double in1 = (*(__in1++));
double mix_251 = (expr_239 + (0.999 * (m_smth_11 - expr_239)));
double mix_1 = mix_251;
double mul_216 = (mix_1 * 0.63245);
double tap_130 = m_delay_24.read_linear(mul_216);
double noise_20 = noise();
double abs_37 = fabs(noise_20);
double mul_43 = (abs_37 * 0.25);
double noise_21 = noise();
double abs_38 = fabs(noise_21);
double mul_46 = (abs_38 * 0.25);
double mul_219 = (mix_1 * 1);
double tap_224 = m_delay_23.read_linear(mul_219);
double noise_22 = noise();
double abs_39 = fabs(noise_22);
double mul_49 = (abs_39 * 0.25);
double mul_217 = (mix_1 * 0.7071);
double tap_136 = m_delay_22.read_linear(mul_217);
double mul_45 = (abs_37 * 0.25);
double noise_19 = noise();
double abs_36 = fabs(noise_19);
double mul_40 = (abs_36 * 0.25);
double mul_218 = (mix_1 * 0.81649);
double tap_142 = m_delay_21.read_linear(mul_218);
double expr_230 = (-safepow(expr_238, mul_216));
double mul_126 = (tap_130 * expr_230);
double mix_252 = (mul_126 + (mul_11 * (m_history_10 - mul_126)));
double mix_128 = mix_252;
double expr_237 = (-safepow(expr_238, mul_219));
double mul_215 = (tap_224 * expr_237);
double mix_253 = (mul_215 + (mul_11 * (m_history_9 - mul_215)));
double mix_222 = mix_253;
double expr_231 = (-safepow(expr_238, mul_217));
double mul_132 = (tap_136 * expr_231);
double mix_254 = (mul_132 + (mul_11 * (m_history_8 - mul_132)));
double mix_134 = mix_254;
double expr_232 = (-safepow(expr_238, mul_218));
double mul_138 = (tap_142 * expr_232);
double mix_255 = (mul_138 + (mul_11 * (m_history_7 - mul_138)));
double mix_140 = mix_255;
double mul_213 = (mix_1 * 0.000527);
int int_212 = int(mul_213);
double mul_169 = (int_212 * 419.5);
double tap_168 = m_delay_20.read_linear(mul_169);
double mul_166 = (tap_168 * 0.625);
double mul_190 = (int_212 * 400.600006);
double tap_189 = m_delay_19.read_linear(mul_190);
double mul_187 = (tap_189 * 0.625);
double add_120 = (mix_222 + mix_140);
double add_118 = (mix_134 + mix_128);
double add_113 = (add_120 + add_118);
double mul_96 = (add_113 * 0.5);
double sub_117 = (add_120 - add_118);
double mul_99 = (sub_117 * 0.5);
double add_156 = (mix_1 + 5);
double expr_233 = safepow(expr_238, add_156);
double phasor_86 = m_phasor_33(mul_67, samples_to_seconds);
double add_66 = ((m_history_6 + phasor_86) + 0.5);
double mod_65 = safemod(add_66, 1);
double delta_45 = m_delta_34(mod_65);
double sah_25 = m_sah_35(mul_43, delta_45, 0);
int sah_44 = m_sah_36(4800, delta_45, 0);
double mul_33 = (sah_44 * mod_65);
double sub_64 = (mod_65 - 0.5);
double mul_63 = (sub_64 * 3.1415926535898);
double cos_62 = cos(mul_63);
double mul_52 = (cos_62 * cos_62);
double add_80 = ((m_history_5 + phasor_86) + 0.25);
double mod_79 = safemod(add_80, 1);
double delta_48 = m_delta_37(mod_79);
double sah_27 = m_sah_38(mul_46, delta_48, 0);
int sah_47 = m_sah_39(4800, delta_48, 0);
double mul_34 = (sah_47 * mod_79);
double sub_78 = (mod_79 - 0.5);
double mul_77 = (sub_78 * 3.1415926535898);
double cos_76 = cos(mul_77);
double mul_53 = (cos_76 * cos_76);
double add_85 = ((m_history_4 + phasor_86) + 0);
double mod_84 = safemod(add_85, 1);
double delta_30 = m_delta_40(mod_84);
double sah_29 = m_sah_41(mul_49, delta_30, 0);
int sah_50 = m_sah_42(4800, delta_30, 0);
double mul_35 = (sah_50 * mod_84);
double sub_83 = (mod_84 - 0.5);
double mul_82 = (sub_83 * 3.1415926535898);
double cos_81 = cos(mul_82);
double mul_54 = (cos_81 * cos_81);
double add_60 = ((m_history_3 + phasor_86) + 0.75);
double mod_59 = safemod(add_60, 1);
double delta_42 = m_delta_43(mod_59);
double sah_23 = m_sah_44(mul_40, delta_42, 0);
int sah_41 = m_sah_45(4800, delta_42, 0);
double mul_32 = (sah_41 * mod_59);
double tap_72 = m_delay_18.read_linear(mul_35);
double tap_73 = m_delay_18.read_linear(mul_34);
double tap_74 = m_delay_18.read_linear(mul_33);
double tap_75 = m_delay_18.read_linear(mul_32);
double mul_61 = (tap_74 * mul_52);
double mul_69 = (tap_73 * mul_53);
double mul_70 = (tap_72 * mul_54);
double sub_58 = (mod_59 - 0.5);
double mul_57 = (sub_58 * 3.1415926535898);
double cos_56 = cos(mul_57);
double mul_51 = (cos_56 * cos_56);
double mul_55 = (tap_75 * mul_51);
double add_257 = (((mul_70 + mul_69) + mul_61) + mul_55);
double mix_256 = (m_y_2 + (clamp_18 * (add_257 - m_y_2)));
double mix_15 = mix_256;
double mix_258 = (in1 + (mul_13 * (mix_15 - in1)));
double mix_87 = mix_258;
double mul_90 = (mix_87 * 0.707);
double mix_259 = (mul_90 + (rsub_9 * (m_history_1 - mul_90)));
double mix_226 = mix_259;
double mul_176 = (int_212 * 566.700012);
double tap_175 = m_delay_17.read_linear(mul_176);
double mul_197 = (int_212 * 568.299988);
double tap_196 = m_delay_16.read_linear(mul_197);
double sub_119 = (mix_222 - mix_140);
double sub_116 = (mix_134 - mix_128);
double sub_115 = (sub_119 - sub_116);
double mul_98 = (sub_115 * 0.5);
double add_114 = (sub_119 + sub_116);
double rsub_112 = (0 - add_114);
double mul_97 = (rsub_112 * 0.5);
double mul_162 = (mix_1 * 0.41);
double add_159 = (mul_162 + 5);
double expr_236 = safepow(expr_238, add_159);
double mul_161 = (mix_1 * 0.3);
double add_158 = (mul_161 + 5);
double expr_235 = safepow(expr_238, add_158);
double mul_160 = (mix_1 * 0.155);
double add_157 = (mul_160 + 5);
double tap_144 = m_delay_15.read_linear(add_159);
double tap_145 = m_delay_15.read_linear(add_158);
double tap_146 = m_delay_15.read_linear(add_157);
double tap_147 = m_delay_15.read_linear(add_156);
double mul_148 = (tap_147 * expr_233);
double add_121 = (mul_96 + mul_148);
double mul_154 = (tap_144 * expr_236);
double add_124 = (mul_99 + mul_154);
double mul_152 = (tap_145 * expr_235);
double add_123 = (mul_98 + mul_152);
double expr_234 = safepow(expr_238, add_157);
double mul_150 = (tap_146 * expr_234);
double add_122 = (mul_97 + mul_150);
double mul_173 = (tap_175 * 0.625);
double mul_194 = (tap_196 * 0.625);
double mul_211 = (mix_1 * 0.110732);
double tap_210 = m_delay_14.read_cubic(mul_211);
double mul_208 = (tap_210 * 0.75);
double sub_207 = (mix_226 - mul_208);
double mul_206 = (sub_207 * 0.75);
double add_205 = (mul_206 + tap_210);
double mul_183 = (int_212 * 144.800003);
double tap_182 = m_delay_13.read_linear(mul_183);
double mul_204 = (int_212 * 162.100006);
double tap_203 = m_delay_12.read_linear(mul_204);
double mul_180 = (tap_182 * 0.75);
double mul_201 = (tap_203 * 0.75);
double mul_107 = (mul_154 * mul_6);
double mul_105 = (mul_150 * mul_6);
double add_93 = (mul_107 + mul_105);
double mul_106 = (mul_152 * mul_6);
double mul_104 = (mul_148 * mul_6);
double mul_42 = (abs_36 * 0.25);
double noise_21 = noise();
double abs_38 = fabs(noise_21);
double mul_48 = (abs_38 * 0.25);
double noise_18 = noise();
double abs_35 = fabs(noise_18);
double mul_39 = (abs_35 * 0.25);
double tap_129 = m_delay_23.read_linear(mul_215);
double tap_135 = m_delay_22.read_linear(mul_216);
double tap_223 = m_delay_21.read_linear(mul_218);
double tap_141 = m_delay_20.read_linear(mul_217);
double mul_125 = (tap_129 * expr_229);
double mix_249 = (mul_125 + (mul_10 * (m_history_10 - mul_125)));
double mix_127 = mix_249;
double mul_131 = (tap_135 * expr_230);
double mix_250 = (mul_131 + (mul_10 * (m_history_9 - mul_131)));
double mix_133 = mix_250;
double mul_214 = (tap_223 * expr_236);
double mix_251 = (mul_214 + (mul_10 * (m_history_8 - mul_214)));
double mix_221 = mix_251;
double mul_137 = (tap_141 * expr_231);
double mix_252 = (mul_137 + (mul_10 * (m_history_7 - mul_137)));
double mix_139 = mix_252;
double tap_167 = m_delay_19.read_linear(mul_168);
double mul_165 = (tap_167 * 0.625);
double tap_188 = m_delay_18.read_linear(mul_189);
double mul_186 = (tap_188 * 0.625);
double phasor_85 = m_phasor_32(mul_66, samples_to_seconds);
double add_79 = ((m_history_6 + phasor_85) + 0.25);
double mod_78 = safemod(add_79, 1);
double delta_47 = m_delta_33(mod_78);
double sah_26 = m_sah_34(mul_45, delta_47, 0);
int sah_46 = m_sah_35(4800, delta_47, 0);
double mul_33 = (sah_46 * mod_78);
double sub_77 = (mod_78 - 0.5);
double mul_76 = (sub_77 * 3.1415926535898);
double cos_75 = cos(mul_76);
double mul_52 = (cos_75 * cos_75);
double add_65 = ((m_history_5 + phasor_85) + 0.5);
double mod_64 = safemod(add_65, 1);
double delta_44 = m_delta_36(mod_64);
double sah_24 = m_sah_37(mul_42, delta_44, 0);
int sah_43 = m_sah_38(4800, delta_44, 0);
double mul_32 = (sah_43 * mod_64);
double sub_63 = (mod_64 - 0.5);
double mul_62 = (sub_63 * 3.1415926535898);
double cos_61 = cos(mul_62);
double mul_51 = (cos_61 * cos_61);
double add_84 = ((m_history_4 + phasor_85) + 0);
double mod_83 = safemod(add_84, 1);
double delta_29 = m_delta_39(mod_83);
double sah_28 = m_sah_40(mul_48, delta_29, 0);
int sah_49 = m_sah_41(4800, delta_29, 0);
double mul_34 = (sah_49 * mod_83);
double sub_82 = (mod_83 - 0.5);
double mul_81 = (sub_82 * 3.1415926535898);
double cos_80 = cos(mul_81);
double mul_53 = (cos_80 * cos_80);
double add_59 = ((m_history_3 + phasor_85) + 0.75);
double mod_58 = safemod(add_59, 1);
double delta_41 = m_delta_42(mod_58);
double sah_22 = m_sah_43(mul_39, delta_41, 0);
int sah_40 = m_sah_44(4800, delta_41, 0);
double mul_31 = (sah_40 * mod_58);
double tap_71 = m_delay_17.read_linear(mul_34);
double tap_72 = m_delay_17.read_linear(mul_33);
double tap_73 = m_delay_17.read_linear(mul_32);
double tap_74 = m_delay_17.read_linear(mul_31);
double mul_60 = (tap_73 * mul_51);
double mul_68 = (tap_72 * mul_52);
double mul_69 = (tap_71 * mul_53);
double sub_57 = (mod_58 - 0.5);
double mul_56 = (sub_57 * 3.1415926535898);
double cos_55 = cos(mul_56);
double mul_50 = (cos_55 * cos_55);
double mul_54 = (tap_74 * mul_50);
double add_254 = (((mul_69 + mul_68) + mul_60) + mul_54);
double mix_253 = (m_y_2 + (clamp_17 * (add_254 - m_y_2)));
double mix_14 = mix_253;
double mix_255 = (in1 + (mul_12 * (mix_14 - in1)));
double mix_86 = mix_255;
double mul_89 = (mix_86 * 0.707);
double mix_256 = (mul_89 + (rsub_8 * (m_history_1 - mul_89)));
double mix_225 = mix_256;
double add_119 = (mix_221 + mix_139);
double add_117 = (mix_133 + mix_127);
double add_112 = (add_119 + add_117);
double mul_95 = (add_112 * 0.5);
double sub_116 = (add_119 - add_117);
double mul_98 = (sub_116 * 0.5);
double tap_174 = m_delay_16.read_linear(mul_175);
double tap_195 = m_delay_15.read_linear(mul_196);
double sub_118 = (mix_221 - mix_139);
double sub_115 = (mix_133 - mix_127);
double sub_114 = (sub_118 - sub_115);
double mul_97 = (sub_114 * 0.5);
double add_113 = (sub_118 + sub_115);
double rsub_111 = (0 - add_113);
double mul_96 = (rsub_111 * 0.5);
double tap_143 = m_delay_14.read_linear(add_158);
double tap_144 = m_delay_14.read_linear(add_157);
double tap_145 = m_delay_14.read_linear(add_156);
double tap_146 = m_delay_14.read_linear(add_155);
double mul_147 = (tap_146 * expr_232);
double add_120 = (mul_95 + mul_147);
double mul_153 = (tap_143 * expr_235);
double add_123 = (mul_98 + mul_153);
double mul_151 = (tap_144 * expr_234);
double add_122 = (mul_97 + mul_151);
double mul_149 = (tap_145 * expr_233);
double add_121 = (mul_96 + mul_149);
double mul_172 = (tap_174 * 0.625);
double mul_193 = (tap_195 * 0.625);
double tap_209 = m_delay_13.read_cubic(mul_210);
double mul_207 = (tap_209 * 0.75);
double sub_206 = (mix_225 - mul_207);
double mul_205 = (sub_206 * 0.75);
double add_204 = (mul_205 + tap_209);
double tap_181 = m_delay_12.read_linear(mul_182);
double tap_202 = m_delay_11.read_linear(mul_203);
double mul_179 = (tap_181 * 0.75);
double mul_200 = (tap_202 * 0.75);
double mul_106 = (mul_153 * mul_5);
double mul_104 = (mul_149 * mul_5);
double add_92 = (mul_106 + mul_104);
double sub_102 = (add_93 - add_92);
double mul_111 = (mul_99 * dbtoa_3);
double mul_109 = (mul_97 * dbtoa_3);
double add_95 = (mul_111 + mul_109);
double mul_110 = (mul_98 * dbtoa_3);
double mul_108 = (mul_96 * dbtoa_3);
double mul_105 = (mul_151 * mul_5);
double mul_103 = (mul_147 * mul_5);
double add_91 = (mul_105 + mul_103);
double sub_101 = (add_92 - add_91);
double mul_110 = (mul_98 * dbtoa_2);
double mul_108 = (mul_96 * dbtoa_2);
double add_94 = (mul_110 + mul_108);
double sub_103 = (add_95 - add_94);
double add_89 = (sub_103 + sub_102);
double add_91 = (add_89 + mix_87);
double sub_179 = (add_91 - mul_180);
double mul_178 = (sub_179 * 0.75);
double add_177 = (mul_178 + tap_182);
double sub_172 = (add_177 - mul_173);
double mul_171 = (sub_172 * 0.625);
double add_170 = (mul_171 + tap_175);
double sub_165 = (add_170 - mul_166);
double mul_164 = (sub_165 * 0.625);
double add_163 = (mul_164 + tap_168);
double mul_88 = (add_163 * mul_12);
double out2 = (in1 + mul_88);
double add_101 = (add_89 + mix_87);
double sub_200 = (add_101 - mul_201);
double mul_199 = (sub_200 * 0.75);
double add_198 = (mul_199 + tap_203);
double sub_193 = (add_198 - mul_194);
double mul_192 = (sub_193 * 0.625);
double add_191 = (mul_192 + tap_196);
double sub_186 = (add_191 - mul_187);
double mul_185 = (sub_186 * 0.625);
double add_184 = (mul_185 + tap_189);
double mul_100 = (add_184 * mul_12);
double out1 = (in1 + mul_100);
double smth_next_240 = mix_1;
double history_127_next_241 = mix_128;
double history_221_next_242 = mix_222;
double history_133_next_243 = mix_134;
double history_139_next_244 = mix_140;
double history_26_next_245 = sah_25;
double history_28_next_246 = sah_27;
double history_31_next_247 = sah_29;
double history_24_next_248 = sah_23;
double y0_next_249 = mix_15;
double history_225_next_250 = mix_226;
m_delay_24.write(add_121);
m_delay_23.write(add_124);
m_delay_22.write(add_122);
double mul_109 = (mul_97 * dbtoa_2);
double mul_107 = (mul_95 * dbtoa_2);
double add_93 = (mul_109 + mul_107);
double sub_102 = (add_94 - add_93);
double add_88 = (sub_102 + sub_101);
double add_90 = (add_88 + mix_86);
double sub_178 = (add_90 - mul_179);
double mul_177 = (sub_178 * 0.75);
double add_176 = (mul_177 + tap_181);
double sub_171 = (add_176 - mul_172);
double mul_170 = (sub_171 * 0.625);
double add_169 = (mul_170 + tap_174);
double sub_164 = (add_169 - mul_165);
double mul_163 = (sub_164 * 0.625);
double add_162 = (mul_163 + tap_167);
double mul_87 = (add_162 * mul_11);
double out2 = (in1 + mul_87);
double add_100 = (add_88 + mix_86);
double sub_199 = (add_100 - mul_200);
double mul_198 = (sub_199 * 0.75);
double add_197 = (mul_198 + tap_202);
double sub_192 = (add_197 - mul_193);
double mul_191 = (sub_192 * 0.625);
double add_190 = (mul_191 + tap_195);
double sub_185 = (add_190 - mul_186);
double mul_184 = (sub_185 * 0.625);
double add_183 = (mul_184 + tap_188);
double mul_99 = (add_183 * mul_11);
double out1 = (in1 + mul_99);
double history_126_next_239 = mix_127;
double history_132_next_240 = mix_133;
double history_220_next_241 = mix_221;
double history_138_next_242 = mix_139;
double history_27_next_243 = sah_26;
double history_25_next_244 = sah_24;
double history_30_next_245 = sah_28;
double history_23_next_246 = sah_22;
double y0_next_247 = mix_14;
double history_224_next_248 = mix_225;
m_delay_23.write(add_120);
m_delay_22.write(add_121);
m_delay_21.write(add_123);
m_delay_20.write(sub_165);
m_delay_19.write(sub_186);
m_delay_18.write(in1);
m_delay_17.write(sub_172);
m_delay_16.write(sub_193);
m_delay_15.write(add_205);
m_delay_14.write(sub_207);
m_delay_13.write(sub_179);
m_delay_12.write(sub_200);
m_smth_11 = smth_next_240;
m_history_10 = history_127_next_241;
m_history_9 = history_221_next_242;
m_history_8 = history_133_next_243;
m_history_7 = history_139_next_244;
m_history_6 = history_26_next_245;
m_history_5 = history_28_next_246;
m_history_4 = history_31_next_247;
m_history_3 = history_24_next_248;
m_y_2 = y0_next_249;
m_history_1 = history_225_next_250;
m_delay_20.write(add_122);
m_delay_19.write(sub_164);
m_delay_18.write(sub_185);
m_delay_17.write(in1);
m_delay_16.write(sub_171);
m_delay_15.write(sub_192);
m_delay_14.write(add_204);
m_delay_13.write(sub_206);
m_delay_12.write(sub_178);
m_delay_11.write(sub_199);
m_history_10 = history_126_next_239;
m_history_9 = history_132_next_240;
m_history_8 = history_220_next_241;
m_history_7 = history_138_next_242;
m_history_6 = history_27_next_243;
m_history_5 = history_25_next_244;
m_history_4 = history_30_next_245;
m_history_3 = history_23_next_246;
m_y_2 = y0_next_247;
m_history_1 = history_224_next_248;
m_delay_11.step();
m_delay_12.step();
m_delay_13.step();
m_delay_14.step();
@@ -414,7 +409,6 @@ typedef struct State {
m_delay_21.step();
m_delay_22.step();
m_delay_23.step();
m_delay_24.step();
// assign results to output buffer;
(*(__out1++)) = out1;
(*(__out2++)) = out2;
@@ -423,29 +417,29 @@ typedef struct State {
return __exception;
};
inline void set_roomsize(double _value) {
m_roomsize_25 = (_value < 1 ? 1 : (_value > 300 ? 300 : _value));
};
inline void set_shimmer(double _value) {
m_shimmer_26 = (_value < 0 ? 0 : (_value > 100 ? 100 : _value));
m_shimmer_24 = (_value < 0 ? 0 : (_value > 100 ? 100 : _value));
};
inline void set_decay(double _value) {
m_decay_27 = (_value < 1 ? 1 : (_value > 100 ? 100 : _value));
m_decay_25 = (_value < 1 ? 1 : (_value > 100 ? 100 : _value));
};
inline void set_damping(double _value) {
m_damping_28 = (_value < 0 ? 0 : (_value > 100 ? 100 : _value));
m_damping_26 = (_value < 0 ? 0 : (_value > 100 ? 100 : _value));
};
inline void set_mix(double _value) {
m_mix_27 = (_value < 0 ? 0 : (_value > 100 ? 100 : _value));
};
inline void set_ratio(double _value) {
m_ratio_29 = (_value < 0.5 ? 0.5 : (_value > 2 ? 2 : _value));
m_ratio_28 = (_value < 0.5 ? 0.5 : (_value > 2 ? 2 : _value));
};
inline void set_roomsize(double _value) {
m_roomsize_29 = (_value < 1 ? 1 : (_value > 300 ? 300 : _value));
};
inline void set_bandwidth(double _value) {
m_bandwidth_30 = (_value < 0 ? 0 : (_value > 100 ? 100 : _value));
};
inline void set_mix(double _value) {
m_mix_31 = (_value < 0 ? 0 : (_value > 100 ? 100 : _value));
};
inline void set_tone(double _value) {
m_tone_32 = (_value < 500 ? 500 : (_value > 6000 ? 6000 : _value));
m_tone_31 = (_value < 500 ? 500 : (_value > 6000 ? 6000 : _value));
};
} State;
@@ -488,13 +482,13 @@ void reset(CommonState *cself) {
void setparameter(CommonState *cself, long index, double value, void *ref) {
State * self = (State *)cself;
switch (index) {
case 0: self->set_roomsize(value); break;
case 1: self->set_shimmer(value); break;
case 2: self->set_decay(value); break;
case 3: self->set_damping(value); break;
case 0: self->set_shimmer(value); break;
case 1: self->set_decay(value); break;
case 2: self->set_damping(value); break;
case 3: self->set_mix(value); break;
case 4: self->set_ratio(value); break;
case 5: self->set_bandwidth(value); break;
case 6: self->set_mix(value); break;
case 5: self->set_roomsize(value); break;
case 6: self->set_bandwidth(value); break;
case 7: self->set_tone(value); break;
default: break;
@@ -506,14 +500,14 @@ void setparameter(CommonState *cself, long index, double value, void *ref) {
void getparameter(CommonState *cself, long index, double *value) {
State *self = (State *)cself;
switch (index) {
case 0: *value = self->m_roomsize_25; break;
case 1: *value = self->m_shimmer_26; break;
case 2: *value = self->m_decay_27; break;
case 3: *value = self->m_damping_28; break;
case 4: *value = self->m_ratio_29; break;
case 5: *value = self->m_bandwidth_30; break;
case 6: *value = self->m_mix_31; break;
case 7: *value = self->m_tone_32; break;
case 0: *value = self->m_shimmer_24; break;
case 1: *value = self->m_decay_25; break;
case 2: *value = self->m_damping_26; break;
case 3: *value = self->m_mix_27; break;
case 4: *value = self->m_ratio_28; break;
case 5: *value = self->m_roomsize_29; break;
case 6: *value = self->m_bandwidth_30; break;
case 7: *value = self->m_tone_31; break;
default: break;
}
@@ -533,53 +527,53 @@ void * create(double sr, long vs) {
self->__commonstate.vs = vs;
self->__commonstate.params = (ParamInfo *)genlib_sysmem_newptr(8 * sizeof(ParamInfo));
self->__commonstate.numparams = 8;
// initialize parameter 0 ("m_roomsize_25")
// initialize parameter 0 ("m_shimmer_24")
pi = self->__commonstate.params + 0;
pi->name = "roomsize";
pi->name = "shimmer";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_roomsize_25;
pi->defaultvalue = self->m_shimmer_24;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 1;
pi->outputmax = 300;
pi->outputmin = 0;
pi->outputmax = 100;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 1 ("m_shimmer_26")
// initialize parameter 1 ("m_decay_25")
pi = self->__commonstate.params + 1;
pi->name = "shimmer";
pi->name = "decay";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_shimmer_26;
pi->defaultvalue = self->m_decay_25;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 0;
pi->outputmin = 1;
pi->outputmax = 100;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 2 ("m_decay_27")
// initialize parameter 2 ("m_damping_26")
pi = self->__commonstate.params + 2;
pi->name = "decay";
pi->name = "damping";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_decay_27;
pi->defaultvalue = self->m_damping_26;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 1;
pi->outputmin = 0;
pi->outputmax = 100;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 3 ("m_damping_28")
// initialize parameter 3 ("m_mix_27")
pi = self->__commonstate.params + 3;
pi->name = "damping";
pi->name = "mix";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_damping_28;
pi->defaultvalue = self->m_mix_27;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
@@ -589,11 +583,11 @@ void * create(double sr, long vs) {
pi->outputmax = 100;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 4 ("m_ratio_29")
// initialize parameter 4 ("m_ratio_28")
pi = self->__commonstate.params + 4;
pi->name = "ratio";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_ratio_29;
pi->defaultvalue = self->m_ratio_28;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
@@ -603,25 +597,25 @@ void * create(double sr, long vs) {
pi->outputmax = 2;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 5 ("m_bandwidth_30")
// initialize parameter 5 ("m_roomsize_29")
pi = self->__commonstate.params + 5;
pi->name = "bandwidth";
pi->name = "roomsize";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_bandwidth_30;
pi->defaultvalue = self->m_roomsize_29;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 0;
pi->outputmax = 100;
pi->outputmin = 1;
pi->outputmax = 300;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 6 ("m_mix_31")
// initialize parameter 6 ("m_bandwidth_30")
pi = self->__commonstate.params + 6;
pi->name = "mix";
pi->name = "bandwidth";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_mix_31;
pi->defaultvalue = self->m_bandwidth_30;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
@@ -631,11 +625,11 @@ void * create(double sr, long vs) {
pi->outputmax = 100;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 7 ("m_tone_32")
// initialize parameter 7 ("m_tone_31")
pi = self->__commonstate.params + 7;
pi->name = "tone";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_tone_32;
pi->defaultvalue = self->m_tone_31;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;


+ 110
- 165
plugins/shiroverb/shiroverb.maxpat View File

@@ -8,7 +8,7 @@
"architecture" : "x86"
}
,
"rect" : [ 258.0, 181.0, 914.0, 536.0 ],
"rect" : [ 258.0, 207.0, 914.0, 510.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 12.0,
@@ -325,7 +325,7 @@
"outlettype" : [ "signal", "signal", "", "float", "list" ],
"parameter_enable" : 1,
"patching_rect" : [ 15.0, 333.0, 136.0, 42.0 ],
"presentation_rect" : [ 60.0, 60.0, 50.0, 42.0 ],
"presentation_rect" : [ 60.0, 60.0, 50.0, 28.0 ],
"saved_attribute_attributes" : {
"valueof" : {
"parameter_longname" : "live.gain~",
@@ -555,34 +555,6 @@
"digest" : "",
"tags" : "",
"boxes" : [ {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-6",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 712.0, 581.0, 75.0, 20.0 ],
"text" : "history smth"
}

}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-7",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 649.0, 581.0, 63.0, 20.0 ],
"text" : "mix 0.999"
}

}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
@@ -3852,9 +3824,110 @@
}
, {
"patchline" : {
"destination" : [ "obj-7", 0 ],
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-191", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 783.0, 1129.0, 783.0 ],
"source" : [ "obj-11", 0 ]
}

}
, {
"patchline" : {
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-192", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 783.0, 982.0, 783.0 ],
"source" : [ "obj-11", 0 ]
}

}
, {
"patchline" : {
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-193", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 783.0, 833.0, 783.0 ],
"source" : [ "obj-11", 0 ]
}

}
, {
"patchline" : {
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-197", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 783.0, 1278.0, 783.0 ],
"source" : [ "obj-11", 0 ]
}

}
, {
"patchline" : {
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-40", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 780.0, 40.499996, 780.0 ],
"source" : [ "obj-11", 0 ]
}

}
, {
"patchline" : {
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-41", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 780.0, 190.5, 780.0 ],
"source" : [ "obj-11", 0 ]
}

}
, {
"patchline" : {
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-42", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 780.0, 490.5, 780.0 ],
"source" : [ "obj-11", 0 ]
}

}
, {
"patchline" : {
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-43", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 780.0, 340.5, 780.0 ],
"source" : [ "obj-11", 0 ]
}

}
, {
"patchline" : {
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-51", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 888.0, 658.0, 888.0, 658.0, 1005.0, 658.5, 1005.0 ],
"source" : [ "obj-11", 0 ]
}

}
, {
"patchline" : {
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-62", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 605.5, 992.5, 605.5 ],
"source" : [ "obj-11", 0 ]
}

@@ -6221,15 +6294,6 @@
"source" : [ "obj-59", 0 ]
}

}
, {
"patchline" : {
"destination" : [ "obj-7", 1 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-6", 0 ]
}

}
, {
"patchline" : {
@@ -6367,125 +6431,6 @@
"source" : [ "obj-69", 0 ]
}

}
, {
"patchline" : {
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-191", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 783.0, 1129.0, 783.0 ],
"source" : [ "obj-7", 0 ]
}

}
, {
"patchline" : {
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-192", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 783.0, 982.0, 783.0 ],
"source" : [ "obj-7", 0 ]
}

}
, {
"patchline" : {
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-193", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 783.0, 833.0, 783.0 ],
"source" : [ "obj-7", 0 ]
}

}
, {
"patchline" : {
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-197", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 783.0, 1278.0, 783.0 ],
"source" : [ "obj-7", 0 ]
}

}
, {
"patchline" : {
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-40", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 780.0, 40.499996, 780.0 ],
"source" : [ "obj-7", 0 ]
}

}
, {
"patchline" : {
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-41", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 780.0, 190.5, 780.0 ],
"source" : [ "obj-7", 0 ]
}

}
, {
"patchline" : {
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-42", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 780.0, 490.5, 780.0 ],
"source" : [ "obj-7", 0 ]
}

}
, {
"patchline" : {
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-43", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 780.0, 340.5, 780.0 ],
"source" : [ "obj-7", 0 ]
}

}
, {
"patchline" : {
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-51", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 888.0, 658.0, 888.0, 658.0, 1005.0, 658.5, 1005.0 ],
"source" : [ "obj-7", 0 ]
}

}
, {
"patchline" : {
"destination" : [ "obj-6", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-7", 0 ]
}

}
, {
"patchline" : {
"color" : [ 0.8, 0.8, 0.8, 1.0 ],
"destination" : [ "obj-62", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 658.5, 605.5, 992.5, 605.5 ],
"source" : [ "obj-7", 0 ]
}

}
, {
"patchline" : {
@@ -7167,18 +7112,18 @@
}
],
"parameters" : {
"obj-31" : [ "[2]", "[2]", 0 ],
"obj-16" : [ "flonum[3]", "flonum[3]", 0 ],
"obj-6" : [ "live.gain~", "live.gain~", 0 ],
"obj-12" : [ "flonum[6]", "flonum[6]", 0 ],
"obj-14" : [ "flonum[7]", "flonum[4]", 0 ],
"obj-7::obj-35" : [ "[5]", "Level", 0 ],
"obj-7::obj-32" : [ "[8]", "[2]", 0 ],
"obj-7::obj-21::obj-6" : [ "live.tab[3]", "live.tab[1]", 0 ],
"obj-19" : [ "flonum[4]", "flonum[4]", 0 ],
"obj-31" : [ "[2]", "[2]", 0 ],
"obj-6" : [ "live.gain~", "live.gain~", 0 ],
"obj-58" : [ "flonum[2]", "flonum[2]", 0 ],
"obj-7::obj-21::obj-6" : [ "live.tab[3]", "live.tab[1]", 0 ],
"obj-44" : [ "flonum", "flonum", 0 ],
"obj-14" : [ "flonum[7]", "flonum[4]", 0 ],
"obj-36" : [ "flonum[1]", "flonum[1]", 0 ],
"obj-16" : [ "flonum[3]", "flonum[3]", 0 ]
"obj-19" : [ "flonum[4]", "flonum[4]", 0 ]
}
,
"dependency_cache" : [ {


Loading…
Cancel
Save