Browse Source

experimental, modulay with dcblock, clip on repeats, 48000samplerate hardcoded, interpolation

pull/2/merge
nino de wit 9 years ago
parent
commit
94afd6f8c6
3 changed files with 460 additions and 244 deletions
  1. +150
    -140
      plugins/modulay/gen_exported.cpp
  2. +154
    -51
      plugins/modulay/modulay.gendsp
  3. +156
    -53
      plugins/modulay/modulay.maxpat

+ 150
- 140
plugins/modulay/gen_exported.cpp View File

@@ -31,22 +31,24 @@ 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_2;
DCBlock m_dcblock_15;
Delay m_delay_3;
SineCycle m_cycle_14;
Delay m_delay_4;
SineCycle m_cycle_16;
SineData __sinedata;
double m_feedforward_9;
double m_mix_11;
double m_depth_12;
double m_time_10;
double m_feedback_13;
double m_repeats_8;
double m_bleed_6;
double m_delay_5;
double m_cutoff_7;
double m_y_1;
double m_repeats_10;
double m_mix_12;
double m_rate_13;
double m_depth_11;
double m_delay_14;
double m_cutoff_9;
double m_time_7;
double m_feedback_6;
double samplerate;
double m_rate_4;
double m_bleed_8;
double m_y_1;
double m_feedforward_5;
double m_history_2;
int vectorsize;
int __exception;
// re-initialize all member variables;
@@ -55,19 +57,21 @@ typedef struct State {
vectorsize = __vs;
samplerate = __sr;
m_y_1 = 0;
m_delay_2.reset("m_delay_2", 44100);
m_delay_3.reset("m_delay_3", 44100);
m_rate_4 = 2;
m_delay_5 = 0;
m_bleed_6 = 0;
m_cutoff_7 = 3000;
m_repeats_8 = 75;
m_feedforward_9 = 100;
m_time_10 = 500;
m_mix_11 = 100;
m_depth_12 = 1;
m_feedback_13 = 0;
m_cycle_14.reset(samplerate, 0);
m_history_2 = 0;
m_delay_3.reset("m_delay_3", 48000);
m_delay_4.reset("m_delay_4", 48000);
m_feedforward_5 = 100;
m_feedback_6 = 0;
m_time_7 = 500;
m_bleed_8 = 0;
m_cutoff_9 = 2500;
m_repeats_10 = 75;
m_depth_11 = 1;
m_mix_12 = 100;
m_rate_13 = 2;
m_delay_14 = 0;
m_dcblock_15.reset();
m_cycle_16.reset(samplerate, 0);
genlib_reset_complete(this);
};
@@ -84,44 +88,50 @@ typedef struct State {
return __exception;
};
double mul_164 = (m_mix_11 * 0.01);
double mstosamps_191 = (m_time_10 * (samplerate * 0.001));
double mul_166 = (m_bleed_6 * 0.01);
double mul_165 = (m_feedforward_9 * 0.01);
double mul_168 = (m_repeats_8 * 0.01);
double expr_192 = safediv(((m_cutoff_7 * 2) * 3.1415926535898), 44100);
double sin_172 = sin(expr_192);
double clamp_173 = ((sin_172 <= 1e-05) ? 1e-05 : ((sin_172 >= 0.99999) ? 0.99999 : sin_172));
double mul_167 = (m_feedback_13 * 0.01);
double mul_1174 = (m_mix_12 * 0.01);
double mstosamps_1200 = (m_time_7 * (samplerate * 0.001));
double expr_1204 = safediv(((m_cutoff_9 * 2) * 3.1415926535898), 48000);
double sin_1181 = sin(expr_1204);
double clamp_1182 = ((sin_1181 <= 1e-05) ? 1e-05 : ((sin_1181 >= 0.99999) ? 0.99999 : sin_1181));
double mul_1176 = (m_bleed_8 * 0.01);
double mul_1175 = (m_feedforward_5 * 0.01);
double mul_1178 = (m_repeats_10 * 0.01);
double mul_1177 = (m_feedback_6 * 0.01);
// the main sample loop;
while ((__n--)) {
const double in1 = (*(__in1++));
double tap_190 = m_delay_3.read_linear(mstosamps_191);
double mix_200 = (m_y_1 + (clamp_173 * (tap_190 - m_y_1)));
double mix_170 = mix_200;
double mul_187 = (mix_170 * mul_168);
m_cycle_14.freq(m_rate_4);
double cycle_176 = m_cycle_14(__sinedata);
double cycleindex_177 = m_cycle_14.phase();
double add_175 = (cycle_176 + 1);
double mul_174 = (add_175 * 0.5);
double mul_179 = (m_depth_12 * mul_174);
double add_178 = (m_delay_5 + mul_179);
double mstosamps_169 = (add_178 * (samplerate * 0.001));
double tap_184 = m_delay_2.read_linear(mstosamps_169);
double mul_182 = (tap_184 * mul_165);
double mul_180 = (tap_184 * mul_167);
double add_186 = (mix_170 + mul_180);
double mul_181 = (add_186 * mul_166);
double add_185 = (mul_181 + mul_182);
double mul_188 = (add_185 * mul_164);
double out1 = (mul_188 + in1);
double y0_next_193 = mix_170;
m_delay_3.write((mul_187 + in1));
m_delay_2.write(add_186);
m_y_1 = y0_next_193;
m_delay_2.step();
double mix_1214 = (m_history_2 + (0.01 * (mstosamps_1200 - m_history_2)));
double mix_1201 = mix_1214;
double tap_1199 = m_delay_4.read_linear(mix_1201);
double mix_1215 = (m_y_1 + (clamp_1182 * (tap_1199 - m_y_1)));
double mix_1180 = mix_1215;
double mul_1196 = (mix_1180 * mul_1178);
double clamp_1205 = ((mul_1196 <= -1) ? -1 : ((mul_1196 >= 1) ? 1 : mul_1196));
double dcblock_1203 = m_dcblock_15(mix_1180);
m_cycle_16.freq(m_rate_13);
double cycle_1185 = m_cycle_16(__sinedata);
double cycleindex_1186 = m_cycle_16.phase();
double add_1184 = (cycle_1185 + 1);
double mul_1183 = (add_1184 * 0.5);
double mul_1188 = (m_depth_11 * mul_1183);
double add_1187 = (m_delay_14 + mul_1188);
double mstosamps_1179 = (add_1187 * (samplerate * 0.001));
double tap_1193 = m_delay_3.read_linear(mstosamps_1179);
double mul_1191 = (tap_1193 * mul_1175);
double mul_1189 = (tap_1193 * mul_1177);
double add_1195 = (dcblock_1203 + mul_1189);
double mul_1190 = (add_1195 * mul_1176);
double add_1194 = (mul_1190 + mul_1191);
double mul_1197 = (add_1194 * mul_1174);
double out1 = (mul_1197 + in1);
double history_1202_next_1206 = mix_1201;
double y0_next_1207 = mix_1180;
m_delay_4.write((clamp_1205 + in1));
m_delay_3.write(add_1195);
m_history_2 = history_1202_next_1206;
m_y_1 = y0_next_1207;
m_delay_3.step();
m_delay_4.step();
// assign results to output buffer;
(*(__out1++)) = out1;
@@ -129,35 +139,35 @@ typedef struct State {
return __exception;
};
inline void set_rate(double _value) {
m_rate_4 = (_value < 0.1 ? 0.1 : (_value > 10 ? 10 : _value));
inline void set_feedforward(double _value) {
m_feedforward_5 = (_value < 70 ? 70 : (_value > 100 ? 100 : _value));
};
inline void set_delay(double _value) {
m_delay_5 = (_value < 0 ? 0 : (_value > 30 ? 30 : _value));
inline void set_feedback(double _value) {
m_feedback_6 = (_value < -70 ? -70 : (_value > 70 ? 70 : _value));
};
inline void set_time(double _value) {
m_time_7 = (_value < 10 ? 10 : (_value > 1000 ? 1000 : _value));
};
inline void set_bleed(double _value) {
m_bleed_6 = (_value < 0 ? 0 : (_value > 70 ? 70 : _value));
m_bleed_8 = (_value < 0 ? 0 : (_value > 70 ? 70 : _value));
};
inline void set_cutoff(double _value) {
m_cutoff_7 = (_value < 0 ? 0 : (_value > 6000 ? 6000 : _value));
m_cutoff_9 = (_value < 0 ? 0 : (_value > 6000 ? 6000 : _value));
};
inline void set_repeats(double _value) {
m_repeats_8 = (_value < 0 ? 0 : (_value > 100 ? 100 : _value));
m_repeats_10 = (_value < 0 ? 0 : (_value > 100 ? 100 : _value));
};
inline void set_feedforward(double _value) {
m_feedforward_9 = (_value < 70 ? 70 : (_value > 100 ? 100 : _value));
};
inline void set_time(double _value) {
m_time_10 = (_value < 10 ? 10 : (_value > 1000 ? 1000 : _value));
inline void set_depth(double _value) {
m_depth_11 = (_value < 0 ? 0 : (_value > 5 ? 5 : _value));
};
inline void set_mix(double _value) {
m_mix_11 = (_value < 0 ? 0 : (_value > 100 ? 100 : _value));
m_mix_12 = (_value < 0 ? 0 : (_value > 100 ? 100 : _value));
};
inline void set_depth(double _value) {
m_depth_12 = (_value < 0 ? 0 : (_value > 5 ? 5 : _value));
inline void set_rate(double _value) {
m_rate_13 = (_value < 0.1 ? 0.1 : (_value > 10 ? 10 : _value));
};
inline void set_feedback(double _value) {
m_feedback_13 = (_value < -70 ? -70 : (_value > 70 ? 70 : _value));
inline void set_delay(double _value) {
m_delay_14 = (_value < 0 ? 0 : (_value > 30 ? 30 : _value));
};
} State;
@@ -200,16 +210,16 @@ void reset(CommonState *cself) {
void setparameter(CommonState *cself, long index, double value, void *ref) {
State * self = (State *)cself;
switch (index) {
case 0: self->set_rate(value); break;
case 1: self->set_delay(value); break;
case 2: self->set_bleed(value); break;
case 3: self->set_cutoff(value); break;
case 4: self->set_repeats(value); break;
case 5: self->set_feedforward(value); break;
case 6: self->set_time(value); break;
case 0: self->set_feedforward(value); break;
case 1: self->set_feedback(value); break;
case 2: self->set_time(value); break;
case 3: self->set_bleed(value); break;
case 4: self->set_cutoff(value); break;
case 5: self->set_repeats(value); break;
case 6: self->set_depth(value); break;
case 7: self->set_mix(value); break;
case 8: self->set_depth(value); break;
case 9: self->set_feedback(value); break;
case 8: self->set_rate(value); break;
case 9: self->set_delay(value); break;
default: break;
}
@@ -220,16 +230,16 @@ 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_rate_4; break;
case 1: *value = self->m_delay_5; break;
case 2: *value = self->m_bleed_6; break;
case 3: *value = self->m_cutoff_7; break;
case 4: *value = self->m_repeats_8; break;
case 5: *value = self->m_feedforward_9; break;
case 6: *value = self->m_time_10; break;
case 7: *value = self->m_mix_11; break;
case 8: *value = self->m_depth_12; break;
case 9: *value = self->m_feedback_13; break;
case 0: *value = self->m_feedforward_5; break;
case 1: *value = self->m_feedback_6; break;
case 2: *value = self->m_time_7; break;
case 3: *value = self->m_bleed_8; break;
case 4: *value = self->m_cutoff_9; break;
case 5: *value = self->m_repeats_10; break;
case 6: *value = self->m_depth_11; break;
case 7: *value = self->m_mix_12; break;
case 8: *value = self->m_rate_13; break;
case 9: *value = self->m_delay_14; break;
default: break;
}
@@ -249,109 +259,109 @@ void * create(double sr, long vs) {
self->__commonstate.vs = vs;
self->__commonstate.params = (ParamInfo *)genlib_sysmem_newptr(10 * sizeof(ParamInfo));
self->__commonstate.numparams = 10;
// initialize parameter 0 ("m_rate_4")
// initialize parameter 0 ("m_feedforward_5")
pi = self->__commonstate.params + 0;
pi->name = "rate";
pi->name = "feedforward";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_rate_4;
pi->defaultvalue = self->m_feedforward_5;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 0.1;
pi->outputmax = 10;
pi->outputmin = 70;
pi->outputmax = 100;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 1 ("m_delay_5")
// initialize parameter 1 ("m_feedback_6")
pi = self->__commonstate.params + 1;
pi->name = "delay";
pi->name = "feedback";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_delay_5;
pi->defaultvalue = self->m_feedback_6;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 0;
pi->outputmax = 30;
pi->outputmin = -70;
pi->outputmax = 70;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 2 ("m_bleed_6")
// initialize parameter 2 ("m_time_7")
pi = self->__commonstate.params + 2;
pi->name = "bleed";
pi->name = "time";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_bleed_6;
pi->defaultvalue = self->m_time_7;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 0;
pi->outputmax = 70;
pi->outputmin = 10;
pi->outputmax = 1000;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 3 ("m_cutoff_7")
// initialize parameter 3 ("m_bleed_8")
pi = self->__commonstate.params + 3;
pi->name = "cutoff";
pi->name = "bleed";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_cutoff_7;
pi->defaultvalue = self->m_bleed_8;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 0;
pi->outputmax = 6000;
pi->outputmax = 70;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 4 ("m_repeats_8")
// initialize parameter 4 ("m_cutoff_9")
pi = self->__commonstate.params + 4;
pi->name = "repeats";
pi->name = "cutoff";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_repeats_8;
pi->defaultvalue = self->m_cutoff_9;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 0;
pi->outputmax = 100;
pi->outputmax = 6000;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 5 ("m_feedforward_9")
// initialize parameter 5 ("m_repeats_10")
pi = self->__commonstate.params + 5;
pi->name = "feedforward";
pi->name = "repeats";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_feedforward_9;
pi->defaultvalue = self->m_repeats_10;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 70;
pi->outputmin = 0;
pi->outputmax = 100;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 6 ("m_time_10")
// initialize parameter 6 ("m_depth_11")
pi = self->__commonstate.params + 6;
pi->name = "time";
pi->name = "depth";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_time_10;
pi->defaultvalue = self->m_depth_11;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 10;
pi->outputmax = 1000;
pi->outputmin = 0;
pi->outputmax = 5;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 7 ("m_mix_11")
// initialize parameter 7 ("m_mix_12")
pi = self->__commonstate.params + 7;
pi->name = "mix";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_mix_11;
pi->defaultvalue = self->m_mix_12;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
@@ -361,32 +371,32 @@ void * create(double sr, long vs) {
pi->outputmax = 100;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 8 ("m_depth_12")
// initialize parameter 8 ("m_rate_13")
pi = self->__commonstate.params + 8;
pi->name = "depth";
pi->name = "rate";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_depth_12;
pi->defaultvalue = self->m_rate_13;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = 0;
pi->outputmax = 5;
pi->outputmin = 0.1;
pi->outputmax = 10;
pi->exp = 0;
pi->units = ""; // no units defined
// initialize parameter 9 ("m_feedback_13")
// initialize parameter 9 ("m_delay_14")
pi = self->__commonstate.params + 9;
pi->name = "feedback";
pi->name = "delay";
pi->paramtype = GENLIB_PARAMTYPE_FLOAT;
pi->defaultvalue = self->m_feedback_13;
pi->defaultvalue = self->m_delay_14;
pi->defaultref = 0;
pi->hasinputminmax = false;
pi->inputmin = 0;
pi->inputmax = 1;
pi->hasminmax = true;
pi->outputmin = -70;
pi->outputmax = 70;
pi->outputmin = 0;
pi->outputmax = 30;
pi->exp = 0;
pi->units = ""; // no units defined


+ 154
- 51
plugins/modulay/modulay.gendsp View File

@@ -29,6 +29,62 @@
"digest" : "",
"tags" : "",
"boxes" : [ {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-47",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 30.5, 307.0, 51.0, 20.0 ],
"text" : "dcblock"
}

}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-46",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 89.0, 307.0, 53.0, 20.0 ],
"text" : "clip -1 1"
}

}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-13",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 61.5, 57.0, 56.0, 20.0 ],
"text" : "mix 0.01"
}

}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-37",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 124.5, 57.0, 46.0, 20.0 ],
"text" : "history"
}

}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
@@ -37,7 +93,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 108.0, 682.0, 42.0, 20.0 ],
"patching_rect" : [ 108.5, 742.0, 42.0, 20.0 ],
"text" : "* 0.01"
}

@@ -51,7 +107,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 89.5, 632.0, 42.0, 20.0 ],
"patching_rect" : [ 89.5, 692.0, 42.0, 20.0 ],
"text" : "* 0.01"
}

@@ -65,7 +121,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 43.5, 607.0, 42.0, 20.0 ],
"patching_rect" : [ 43.5, 667.0, 42.0, 20.0 ],
"text" : "* 0.01"
}

@@ -79,7 +135,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 168.5, 517.0, 42.0, 20.0 ],
"patching_rect" : [ 168.5, 577.0, 42.0, 20.0 ],
"text" : "* 0.01"
}

@@ -93,7 +149,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 103.0, 217.0, 42.0, 20.0 ],
"patching_rect" : [ 103.0, 252.0, 42.0, 20.0 ],
"text" : "* 0.01"
}

@@ -107,7 +163,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 96.5, 492.0, 72.0, 20.0 ],
"patching_rect" : [ 96.5, 552.0, 72.0, 20.0 ],
"text" : "mstosamps"
}

@@ -121,7 +177,7 @@
"numinlets" : 3,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 30.5, 217.0, 46.0, 20.0 ],
"patching_rect" : [ 30.5, 252.0, 46.0, 20.0 ],
"text" : "mix"
}

@@ -135,8 +191,8 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 57.5, 117.0, 170.0, 20.0 ],
"text" : "expr out=in1*2*PI/samplerate\\;"
"patching_rect" : [ 57.5, 152.0, 144.0, 20.0 ],
"text" : "expr out=in1*2*PI/48000\\;"
}

}
@@ -149,7 +205,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 30.5, 192.0, 72.0, 20.0 ],
"patching_rect" : [ 30.5, 227.0, 72.0, 20.0 ],
"text" : "history y0 0"
}

@@ -163,7 +219,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 57.5, 142.0, 26.0, 20.0 ],
"patching_rect" : [ 57.5, 177.0, 26.0, 20.0 ],
"text" : "sin"
}

@@ -177,7 +233,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 57.5, 167.0, 125.0, 20.0 ],
"patching_rect" : [ 57.5, 202.0, 125.0, 20.0 ],
"text" : "clip 0.00001 0.99999"
}

@@ -191,8 +247,8 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 57.5, 92.0, 220.0, 20.0 ],
"text" : "param cutoff 3000 @min 0 @max 6000"
"patching_rect" : [ 57.5, 127.0, 220.0, 20.0 ],
"text" : "param cutoff 2500 @min 0 @max 6000"
}

}
@@ -205,7 +261,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 147.5, 417.0, 35.0, 20.0 ],
"patching_rect" : [ 147.5, 477.0, 35.0, 20.0 ],
"text" : "* 0.5"
}

@@ -219,7 +275,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 147.5, 392.0, 28.0, 20.0 ],
"patching_rect" : [ 147.5, 452.0, 28.0, 20.0 ],
"text" : "+ 1"
}

@@ -233,7 +289,7 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 147.5, 342.0, 188.0, 20.0 ],
"patching_rect" : [ 147.5, 402.0, 188.0, 20.0 ],
"text" : "param rate 2 @min 0.1 @max 10"
}

@@ -247,7 +303,7 @@
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "" ],
"patching_rect" : [ 147.5, 367.0, 38.0, 20.0 ],
"patching_rect" : [ 147.5, 427.0, 38.0, 20.0 ],
"text" : "cycle"
}

@@ -261,7 +317,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 96.5, 467.0, 57.0, 20.0 ],
"patching_rect" : [ 96.5, 527.0, 57.0, 20.0 ],
"text" : "+"
}

@@ -275,7 +331,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 134.5, 442.0, 32.5, 20.0 ],
"patching_rect" : [ 134.5, 502.0, 32.5, 20.0 ],
"text" : "*"
}

@@ -289,7 +345,7 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 134.5, 317.0, 181.0, 20.0 ],
"patching_rect" : [ 134.5, 377.0, 181.0, 20.0 ],
"text" : "param depth 1 @min 0 @max 5"
}

@@ -303,7 +359,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 155.0, 547.0, 32.5, 20.0 ],
"patching_rect" : [ 155.0, 607.0, 32.5, 20.0 ],
"text" : "*"
}

@@ -317,7 +373,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 30.0, 632.0, 32.5, 20.0 ],
"patching_rect" : [ 30.0, 692.0, 32.5, 20.0 ],
"text" : "*"
}

@@ -331,7 +387,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 76.0, 657.0, 32.5, 20.0 ],
"patching_rect" : [ 76.0, 717.0, 32.5, 20.0 ],
"text" : "*"
}

@@ -345,7 +401,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 77.0, 517.0, 39.0, 20.0 ],
"patching_rect" : [ 77.0, 577.0, 39.0, 20.0 ],
"text" : "delay"
}

@@ -359,7 +415,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 30.0, 682.0, 65.0, 20.0 ],
"patching_rect" : [ 30.0, 742.0, 65.0, 20.0 ],
"text" : "+"
}

@@ -373,7 +429,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 31.0, 292.0, 32.5, 20.0 ],
"patching_rect" : [ 31.0, 352.0, 32.5, 20.0 ],
"text" : "+"
}

@@ -387,7 +443,7 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 168.5, 492.0, 217.0, 20.0 ],
"patching_rect" : [ 168.5, 552.0, 217.0, 20.0 ],
"text" : "param feedback 0 @min -70 @max 70"
}

@@ -401,7 +457,7 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 43.5, 582.0, 187.0, 20.0 ],
"patching_rect" : [ 43.5, 642.0, 187.0, 20.0 ],
"text" : "param bleed 0 @min 0 @max 70"
}

@@ -415,7 +471,7 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 97.0, 292.0, 186.0, 20.0 ],
"patching_rect" : [ 97.0, 352.0, 186.0, 20.0 ],
"text" : "param delay 0 @min 0 @max 30"
}

@@ -429,7 +485,7 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 89.5, 607.0, 248.0, 20.0 ],
"patching_rect" : [ 89.5, 667.0, 248.0, 20.0 ],
"text" : "param feedforward 100 @min 70 @max 100"
}

@@ -443,7 +499,7 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 103.0, 192.0, 211.0, 20.0 ],
"patching_rect" : [ 103.0, 227.0, 211.0, 20.0 ],
"text" : "param repeats 75 @min 0 @max 100"
}

@@ -457,7 +513,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 89.0, 247.0, 32.5, 20.0 ],
"patching_rect" : [ 89.0, 282.0, 32.5, 20.0 ],
"text" : "*"
}

@@ -471,7 +527,7 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 108.0, 657.0, 196.0, 20.0 ],
"patching_rect" : [ 108.5, 717.0, 196.0, 20.0 ],
"text" : "param mix 100 @min 0 @max 100"
}

@@ -485,7 +541,7 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 61.5, 2.0, 214.0, 20.0 ],
"patching_rect" : [ 98.5, 2.0, 214.0, 20.0 ],
"text" : "param time 500 @min 10 @max 1000"
}

@@ -499,7 +555,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 30.0, 711.0, 32.5, 20.0 ],
"patching_rect" : [ 30.0, 771.0, 32.5, 20.0 ],
"text" : "*"
}

@@ -513,7 +569,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 42.0, 67.0, 39.0, 20.0 ],
"patching_rect" : [ 42.0, 102.0, 39.0, 20.0 ],
"text" : "delay"
}

@@ -527,7 +583,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 61.5, 27.0, 72.0, 20.0 ],
"patching_rect" : [ 98.5, 27.0, 72.0, 20.0 ],
"text" : "mstosamps"
}

@@ -554,7 +610,7 @@
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 16.0, 741.0, 37.0, 20.0 ],
"patching_rect" : [ 16.0, 801.0, 37.0, 20.0 ],
"text" : "out 1"
}

@@ -565,7 +621,7 @@
"destination" : [ "obj-21", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 25.5, 44.0, 51.5, 44.0 ],
"midpoints" : [ 25.5, 50.0, 51.5, 50.0 ],
"source" : [ "obj-1", 0 ]
}

@@ -602,36 +658,55 @@
"destination" : [ "obj-34", 1 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 117.5, 706.0, 53.0, 706.0 ],
"midpoints" : [ 118.0, 766.0, 53.0, 766.0 ],
"source" : [ "obj-12", 0 ]
}

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

}
, {
"patchline" : {
"destination" : [ "obj-37", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 71.0, 84.0, 176.5, 84.0, 176.5, 50.0, 134.0, 50.0 ],
"source" : [ "obj-13", 0 ]
}

}
, {
"patchline" : {
"destination" : [ "obj-24", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 40.0, 244.0, 11.0, 244.0, 11.0, 184.0, 40.0, 184.0 ],
"midpoints" : [ 40.0, 279.0, 11.0, 279.0, 11.0, 219.0, 40.0, 219.0 ],
"source" : [ "obj-15", 0 ]
}

}
, {
"patchline" : {
"destination" : [ "obj-27", 0 ],
"destination" : [ "obj-43", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 40.0, 276.5, 98.5, 276.5 ],
"source" : [ "obj-15", 0 ]
}

}
, {
"patchline" : {
"destination" : [ "obj-43", 0 ],
"destination" : [ "obj-47", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 40.0, 241.5, 98.5, 241.5 ],
"source" : [ "obj-15", 0 ]
}

@@ -656,7 +731,7 @@
}
, {
"patchline" : {
"destination" : [ "obj-21", 1 ],
"destination" : [ "obj-13", 1 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-20", 0 ]
@@ -722,7 +797,7 @@
"destination" : [ "obj-33", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 86.5, 541.5, 164.5, 541.5 ],
"midpoints" : [ 86.5, 601.5, 164.5, 601.5 ],
"source" : [ "obj-29", 0 ]
}

@@ -768,7 +843,7 @@
"destination" : [ "obj-27", 1 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 164.5, 575.0, 393.0, 575.0, 393.0, 324.0, 393.0, 324.0, 393.0, 283.0, 54.0, 283.0 ],
"midpoints" : [ 164.5, 635.0, 393.0, 635.0, 393.0, 384.0, 393.0, 384.0, 393.0, 343.0, 54.0, 343.0 ],
"source" : [ "obj-33", 0 ]
}

@@ -778,7 +853,7 @@
"destination" : [ "obj-4", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 39.5, 735.5, 25.5, 735.5 ],
"midpoints" : [ 39.5, 795.5, 25.5, 795.5 ],
"source" : [ "obj-34", 0 ]
}

@@ -800,6 +875,16 @@
"source" : [ "obj-36", 0 ]
}

}
, {
"patchline" : {
"destination" : [ "obj-13", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 134.0, 79.0, 122.5, 79.0, 122.5, 51.0, 71.0, 51.0 ],
"source" : [ "obj-37", 0 ]
}

}
, {
"patchline" : {
@@ -830,10 +915,9 @@
}
, {
"patchline" : {
"destination" : [ "obj-21", 0 ],
"destination" : [ "obj-46", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 98.5, 274.0, 392.25, 274.0, 392.25, 58.0, 51.5, 58.0 ],
"source" : [ "obj-43", 0 ]
}

@@ -846,6 +930,25 @@
"source" : [ "obj-44", 0 ]
}

}
, {
"patchline" : {
"destination" : [ "obj-21", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 98.5, 335.0, 392.25, 335.0, 392.25, 93.0, 51.5, 93.0 ],
"source" : [ "obj-46", 0 ]
}

}
, {
"patchline" : {
"destination" : [ "obj-27", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-47", 0 ]
}

}
, {
"patchline" : {


+ 156
- 53
plugins/modulay/modulay.maxpat View File

@@ -8,7 +8,7 @@
"architecture" : "x86"
}
,
"rect" : [ 0.0, 71.0, 960.0, 679.0 ],
"rect" : [ 0.0, 97.0, 960.0, 653.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 12.0,
@@ -288,7 +288,7 @@
"id" : "obj-25",
"maxclass" : "flonum",
"maximum" : 1000.0,
"minimum" : 20.0,
"minimum" : 10.0,
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "float", "bang" ],
@@ -445,6 +445,62 @@
"digest" : "",
"tags" : "",
"boxes" : [ {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-47",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 30.5, 307.0, 51.0, 20.0 ],
"text" : "dcblock"
}

}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-46",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 89.0, 307.0, 53.0, 20.0 ],
"text" : "clip -1 1"
}

}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-13",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 61.5, 57.0, 56.0, 20.0 ],
"text" : "mix 0.01"
}

}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-37",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 124.5, 57.0, 46.0, 20.0 ],
"text" : "history"
}

}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
@@ -453,7 +509,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 108.0, 682.0, 42.0, 20.0 ],
"patching_rect" : [ 108.5, 742.0, 42.0, 20.0 ],
"text" : "* 0.01"
}

@@ -467,7 +523,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 89.5, 632.0, 42.0, 20.0 ],
"patching_rect" : [ 89.5, 692.0, 42.0, 20.0 ],
"text" : "* 0.01"
}

@@ -481,7 +537,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 43.5, 607.0, 42.0, 20.0 ],
"patching_rect" : [ 43.5, 667.0, 42.0, 20.0 ],
"text" : "* 0.01"
}

@@ -495,7 +551,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 168.5, 517.0, 42.0, 20.0 ],
"patching_rect" : [ 168.5, 577.0, 42.0, 20.0 ],
"text" : "* 0.01"
}

@@ -509,7 +565,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 103.0, 217.0, 42.0, 20.0 ],
"patching_rect" : [ 103.0, 252.0, 42.0, 20.0 ],
"text" : "* 0.01"
}

@@ -523,7 +579,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 96.5, 492.0, 72.0, 20.0 ],
"patching_rect" : [ 96.5, 552.0, 72.0, 20.0 ],
"text" : "mstosamps"
}

@@ -537,7 +593,7 @@
"numinlets" : 3,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 30.5, 217.0, 46.0, 20.0 ],
"patching_rect" : [ 30.5, 252.0, 46.0, 20.0 ],
"text" : "mix"
}

@@ -551,8 +607,8 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 57.5, 117.0, 170.0, 20.0 ],
"text" : "expr out=in1*2*PI/samplerate\\;"
"patching_rect" : [ 57.5, 152.0, 144.0, 20.0 ],
"text" : "expr out=in1*2*PI/48000\\;"
}

}
@@ -565,7 +621,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 30.5, 192.0, 72.0, 20.0 ],
"patching_rect" : [ 30.5, 227.0, 72.0, 20.0 ],
"text" : "history y0 0"
}

@@ -579,7 +635,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 57.5, 142.0, 26.0, 20.0 ],
"patching_rect" : [ 57.5, 177.0, 26.0, 20.0 ],
"text" : "sin"
}

@@ -593,7 +649,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 57.5, 167.0, 125.0, 20.0 ],
"patching_rect" : [ 57.5, 202.0, 125.0, 20.0 ],
"text" : "clip 0.00001 0.99999"
}

@@ -607,8 +663,8 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 57.5, 92.0, 220.0, 20.0 ],
"text" : "param cutoff 3000 @min 0 @max 6000"
"patching_rect" : [ 57.5, 127.0, 220.0, 20.0 ],
"text" : "param cutoff 2500 @min 0 @max 6000"
}

}
@@ -621,7 +677,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 147.5, 417.0, 35.0, 20.0 ],
"patching_rect" : [ 147.5, 477.0, 35.0, 20.0 ],
"text" : "* 0.5"
}

@@ -635,7 +691,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 147.5, 392.0, 28.0, 20.0 ],
"patching_rect" : [ 147.5, 452.0, 28.0, 20.0 ],
"text" : "+ 1"
}

@@ -649,7 +705,7 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 147.5, 342.0, 188.0, 20.0 ],
"patching_rect" : [ 147.5, 402.0, 188.0, 20.0 ],
"text" : "param rate 2 @min 0.1 @max 10"
}

@@ -663,7 +719,7 @@
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "" ],
"patching_rect" : [ 147.5, 367.0, 38.0, 20.0 ],
"patching_rect" : [ 147.5, 427.0, 38.0, 20.0 ],
"text" : "cycle"
}

@@ -677,7 +733,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 96.5, 467.0, 57.0, 20.0 ],
"patching_rect" : [ 96.5, 527.0, 57.0, 20.0 ],
"text" : "+"
}

@@ -691,7 +747,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 134.5, 442.0, 32.5, 20.0 ],
"patching_rect" : [ 134.5, 502.0, 32.5, 20.0 ],
"text" : "*"
}

@@ -705,7 +761,7 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 134.5, 317.0, 181.0, 20.0 ],
"patching_rect" : [ 134.5, 377.0, 181.0, 20.0 ],
"text" : "param depth 1 @min 0 @max 5"
}

@@ -719,7 +775,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 155.0, 547.0, 32.5, 20.0 ],
"patching_rect" : [ 155.0, 607.0, 32.5, 20.0 ],
"text" : "*"
}

@@ -733,7 +789,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 30.0, 632.0, 32.5, 20.0 ],
"patching_rect" : [ 30.0, 692.0, 32.5, 20.0 ],
"text" : "*"
}

@@ -747,7 +803,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 76.0, 657.0, 32.5, 20.0 ],
"patching_rect" : [ 76.0, 717.0, 32.5, 20.0 ],
"text" : "*"
}

@@ -761,7 +817,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 77.0, 517.0, 39.0, 20.0 ],
"patching_rect" : [ 77.0, 577.0, 39.0, 20.0 ],
"text" : "delay"
}

@@ -775,7 +831,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 30.0, 682.0, 65.0, 20.0 ],
"patching_rect" : [ 30.0, 742.0, 65.0, 20.0 ],
"text" : "+"
}

@@ -789,7 +845,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 31.0, 292.0, 32.5, 20.0 ],
"patching_rect" : [ 31.0, 352.0, 32.5, 20.0 ],
"text" : "+"
}

@@ -803,7 +859,7 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 168.5, 492.0, 217.0, 20.0 ],
"patching_rect" : [ 168.5, 552.0, 217.0, 20.0 ],
"text" : "param feedback 0 @min -70 @max 70"
}

@@ -817,7 +873,7 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 43.5, 582.0, 187.0, 20.0 ],
"patching_rect" : [ 43.5, 642.0, 187.0, 20.0 ],
"text" : "param bleed 0 @min 0 @max 70"
}

@@ -831,7 +887,7 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 97.0, 292.0, 186.0, 20.0 ],
"patching_rect" : [ 97.0, 352.0, 186.0, 20.0 ],
"text" : "param delay 0 @min 0 @max 30"
}

@@ -845,7 +901,7 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 89.5, 607.0, 248.0, 20.0 ],
"patching_rect" : [ 89.5, 667.0, 248.0, 20.0 ],
"text" : "param feedforward 100 @min 70 @max 100"
}

@@ -859,7 +915,7 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 103.0, 192.0, 211.0, 20.0 ],
"patching_rect" : [ 103.0, 227.0, 211.0, 20.0 ],
"text" : "param repeats 75 @min 0 @max 100"
}

@@ -873,7 +929,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 89.0, 247.0, 32.5, 20.0 ],
"patching_rect" : [ 89.0, 282.0, 32.5, 20.0 ],
"text" : "*"
}

@@ -887,7 +943,7 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 108.0, 657.0, 196.0, 20.0 ],
"patching_rect" : [ 108.5, 717.0, 196.0, 20.0 ],
"text" : "param mix 100 @min 0 @max 100"
}

@@ -901,7 +957,7 @@
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 61.5, 2.0, 214.0, 20.0 ],
"patching_rect" : [ 98.5, 2.0, 214.0, 20.0 ],
"text" : "param time 500 @min 10 @max 1000"
}

@@ -915,7 +971,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 30.0, 711.0, 32.5, 20.0 ],
"patching_rect" : [ 30.0, 771.0, 32.5, 20.0 ],
"text" : "*"
}

@@ -929,7 +985,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 42.0, 67.0, 39.0, 20.0 ],
"patching_rect" : [ 42.0, 102.0, 39.0, 20.0 ],
"text" : "delay"
}

@@ -943,7 +999,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 61.5, 27.0, 72.0, 20.0 ],
"patching_rect" : [ 98.5, 27.0, 72.0, 20.0 ],
"text" : "mstosamps"
}

@@ -970,7 +1026,7 @@
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 16.0, 741.0, 37.0, 20.0 ],
"patching_rect" : [ 16.0, 801.0, 37.0, 20.0 ],
"text" : "out 1"
}

@@ -981,7 +1037,7 @@
"destination" : [ "obj-21", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 25.5, 44.0, 51.5, 44.0 ],
"midpoints" : [ 25.5, 50.0, 51.5, 50.0 ],
"source" : [ "obj-1", 0 ]
}

@@ -1018,36 +1074,55 @@
"destination" : [ "obj-34", 1 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 117.5, 706.0, 53.0, 706.0 ],
"midpoints" : [ 118.0, 766.0, 53.0, 766.0 ],
"source" : [ "obj-12", 0 ]
}

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

}
, {
"patchline" : {
"destination" : [ "obj-37", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 71.0, 84.0, 176.5, 84.0, 176.5, 50.0, 134.0, 50.0 ],
"source" : [ "obj-13", 0 ]
}

}
, {
"patchline" : {
"destination" : [ "obj-24", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 40.0, 244.0, 11.0, 244.0, 11.0, 184.0, 40.0, 184.0 ],
"midpoints" : [ 40.0, 279.0, 11.0, 279.0, 11.0, 219.0, 40.0, 219.0 ],
"source" : [ "obj-15", 0 ]
}

}
, {
"patchline" : {
"destination" : [ "obj-27", 0 ],
"destination" : [ "obj-43", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 40.0, 276.5, 98.5, 276.5 ],
"source" : [ "obj-15", 0 ]
}

}
, {
"patchline" : {
"destination" : [ "obj-43", 0 ],
"destination" : [ "obj-47", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 40.0, 241.5, 98.5, 241.5 ],
"source" : [ "obj-15", 0 ]
}

@@ -1072,7 +1147,7 @@
}
, {
"patchline" : {
"destination" : [ "obj-21", 1 ],
"destination" : [ "obj-13", 1 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-20", 0 ]
@@ -1138,7 +1213,7 @@
"destination" : [ "obj-33", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 86.5, 541.5, 164.5, 541.5 ],
"midpoints" : [ 86.5, 601.5, 164.5, 601.5 ],
"source" : [ "obj-29", 0 ]
}

@@ -1184,7 +1259,7 @@
"destination" : [ "obj-27", 1 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 164.5, 575.0, 393.0, 575.0, 393.0, 324.0, 393.0, 324.0, 393.0, 283.0, 54.0, 283.0 ],
"midpoints" : [ 164.5, 635.0, 393.0, 635.0, 393.0, 384.0, 393.0, 384.0, 393.0, 343.0, 54.0, 343.0 ],
"source" : [ "obj-33", 0 ]
}

@@ -1194,7 +1269,7 @@
"destination" : [ "obj-4", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 39.5, 735.5, 25.5, 735.5 ],
"midpoints" : [ 39.5, 795.5, 25.5, 795.5 ],
"source" : [ "obj-34", 0 ]
}

@@ -1216,6 +1291,16 @@
"source" : [ "obj-36", 0 ]
}

}
, {
"patchline" : {
"destination" : [ "obj-13", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 134.0, 79.0, 122.5, 79.0, 122.5, 51.0, 71.0, 51.0 ],
"source" : [ "obj-37", 0 ]
}

}
, {
"patchline" : {
@@ -1246,10 +1331,9 @@
}
, {
"patchline" : {
"destination" : [ "obj-21", 0 ],
"destination" : [ "obj-46", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 98.5, 274.0, 392.25, 274.0, 392.25, 58.0, 51.5, 58.0 ],
"source" : [ "obj-43", 0 ]
}

@@ -1262,6 +1346,25 @@
"source" : [ "obj-44", 0 ]
}

}
, {
"patchline" : {
"destination" : [ "obj-21", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 98.5, 335.0, 392.25, 335.0, 392.25, 93.0, 51.5, 93.0 ],
"source" : [ "obj-46", 0 ]
}

}
, {
"patchline" : {
"destination" : [ "obj-27", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-47", 0 ]
}

}
, {
"patchline" : {


Loading…
Cancel
Save